发新帖我要提问
12
返回列表
打印
[PIC®/AVR®/dsPIC®产品]

在使用MPLAB X IDE(XC8编译器)时候的疑问

[复制链接]
楼主: tree844
手机看帖
扫描二维码
随时随地手机跟帖
21
tree844|  楼主 | 2022-2-9 09:40 | 只看该作者 回帖奖励 |倒序浏览
labasi 发表于 2022-2-4 19:30
直接做除法太耗费资源

但是我先单独做除法再赋值却没有问题。

使用特权

评论回复
22
锵才才| | 2022-2-9 10:32 | 只看该作者
你的XC8是什么版本,建议下载最新的XC8

使用特权

评论回复
评论
锵才才 2022-2-14 10:56 回复TA
@tree844 : 我用2.32做软仿真,结果是对的 
tree844 2022-2-10 16:21 回复TA
2.30 
23
试试
TMR1H =(65535 - F) >> 8;
TMR1L = (65535 - F)  & 0xff;

使用特权

评论回复
24
wooda| | 2022-2-9 12:32 | 只看该作者
这里有2个问题,一个是赋值进入TIMRH时候,timer是否在走,如果在走,那么调试器能不能抓到赋值瞬间的值,是需要打问号的,----这个问题的**方法是跳到汇编代码去单步,在最后赋值到TIMRH这一步直接看源寄存器值
另外一个问题就是题主怀疑的unsigned int的计算问题,这个我之前的破节方法是建立一个结构体,直接处理unsigned int和2个unsigned char的转换

使用特权

评论回复
25
ynwa| | 2022-2-9 16:48 | 只看该作者
tree844 发表于 2022-1-20 14:50
赋值过程中,这个计算结果就是不对的。我也觉得可能是你说的这样,但是从C语言的语法上来说,这样有什么 ...

语法上没什么不对,但是你也要考虑数据类型的影响。不同数据类型的长度不同,也会影响结果。

使用特权

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

本版积分规则