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

[复制链接]
 楼主| 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 | 显示全部楼层
这种数据算起来可是很费劲的,需要拆分好多小的算式。不过是系统自动拆分的。
airwill 发表于 2016-2-25 09:00 | 显示全部楼层
kenhgt 发表于 2016-2-24 17:30
用的是IAR_STM8平台,编译器就是里面的,没看到选项。怎么用软件实现?定义个大数组?or通过2个32变量 ...

对, 2 个32 位, 或者是 8 个8位. 就如楼上所说, 做这个程序还是比较费劲的.
不过网上有大量的子程序库可以参考的
yu515301489 发表于 2016-2-25 11:53 | 显示全部楼层
我想知道你什么用到这么大的变量,可以再合理规划看是否能用其他结构体实现。
 楼主| kenhgt 发表于 2016-2-26 13:38 | 显示全部楼层
airwill 发表于 2016-2-25 09:00
对, 2 个32 位, 或者是 8 个8位. 就如楼上所说, 做这个程序还是比较费劲的.
不过网上有大量的子程序库可 ...

已解决,用2个32位,不算太费劲。做一下高低位判断就可以了
玄德 发表于 2016-2-26 13:56 | 显示全部楼层

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


deviceplugs 发表于 2016-2-26 22:00 | 显示全部楼层
现在的编译器有支持64位的吗,stm8s不是64位的吧
cool_coder 发表于 2016-2-26 22:11 | 显示全部楼层
处理这种编译器不支持的数据类型用汇编更合适。
 楼主| kenhgt 发表于 2016-3-4 08:45 | 显示全部楼层
cool_coder 发表于 2016-2-26 22:11
处理这种编译器不支持的数据类型用汇编更合适。

怎么用汇编???
cool_coder 发表于 2016-3-4 22:14 | 显示全部楼层
kenhgt 发表于 2016-3-4 08:45
怎么用汇编???

如果你的程序大部分是用C写的,只有少部分需要用汇编,可以使用嵌入式汇编,或者编写汇编子程序供C代码调用。
trglion 发表于 2016-12-9 16:00 | 显示全部楼层
请教这个问题是具体如何解决的?  有没有代码可以参考?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

86

帖子

1

粉丝
快速回复 返回顶部 返回列表