打印
[STM8]

STM8S 能否用 unsigned long long,需要64位的变量

[复制链接]
4757|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kenhgt|  楼主 | 2016-2-24 16:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
平台:STM8S003F3P6

现在程序最大用到unsigned long ,32位变量没问题
但增大到unsigned long long,64位变量,即使定义没报错,在实际移位的时候在前面一些位数还是无法设置。
沙发
airwill| | 2016-2-24 16:58 | 只看该作者
这是编译器没有支持 64 位变量吧.
你可以考虑用软件实现 64 变量的计算的

使用特权

评论回复
板凳
kenhgt|  楼主 | 2016-2-24 17:30 | 只看该作者
airwill 发表于 2016-2-24 16:58
这是编译器没有支持 64 位变量吧.
你可以考虑用软件实现 64 变量的计算的

用的是IAR_STM8平台,编译器就是里面的,没看到选项。怎么用软件实现?定义个大数组?or通过2个32变量

使用特权

评论回复
地板
598330983| | 2016-2-24 21:27 | 只看该作者
这种数据算起来可是很费劲的,需要拆分好多小的算式。不过是系统自动拆分的。

使用特权

评论回复
5
airwill| | 2016-2-25 09:00 | 只看该作者
kenhgt 发表于 2016-2-24 17:30
用的是IAR_STM8平台,编译器就是里面的,没看到选项。怎么用软件实现?定义个大数组?or通过2个32变量 ...

对, 2 个32 位, 或者是 8 个8位. 就如楼上所说, 做这个程序还是比较费劲的.
不过网上有大量的子程序库可以参考的

使用特权

评论回复
6
yu515301489| | 2016-2-25 11:53 | 只看该作者
我想知道你什么用到这么大的变量,可以再合理规划看是否能用其他结构体实现。

使用特权

评论回复
7
kenhgt|  楼主 | 2016-2-26 13:38 | 只看该作者
airwill 发表于 2016-2-25 09:00
对, 2 个32 位, 或者是 8 个8位. 就如楼上所说, 做这个程序还是比较费劲的.
不过网上有大量的子程序库可 ...

已解决,用2个32位,不算太费劲。做一下高低位判断就可以了

使用特权

评论回复
8
玄德| | 2016-2-26 13:56 | 只看该作者

应该会支持。
到帮助文件里找找关键字。


使用特权

评论回复
9
deviceplugs| | 2016-2-26 22:00 | 只看该作者
现在的编译器有支持64位的吗,stm8s不是64位的吧

使用特权

评论回复
10
cool_coder| | 2016-2-26 22:11 | 只看该作者
处理这种编译器不支持的数据类型用汇编更合适。

使用特权

评论回复
11
kenhgt|  楼主 | 2016-3-4 08:45 | 只看该作者
cool_coder 发表于 2016-2-26 22:11
处理这种编译器不支持的数据类型用汇编更合适。

怎么用汇编???

使用特权

评论回复
12
cool_coder| | 2016-3-4 22:14 | 只看该作者
kenhgt 发表于 2016-3-4 08:45
怎么用汇编???

如果你的程序大部分是用C写的,只有少部分需要用汇编,可以使用嵌入式汇编,或者编写汇编子程序供C代码调用。

使用特权

评论回复
13
trglion| | 2016-12-9 16:00 | 只看该作者
请教这个问题是具体如何解决的?  有没有代码可以参考?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

86

帖子

1

粉丝