本帖最后由 pzsh 于 2022-1-12 14:25 编辑
硬件:PIC16F877A
我在写一个音乐播放器的例程,发现一个不解的现象:
/*************************/
给TMR1赋值时,直接写成如下:
(F是unsigned int的变量)
TMR1H = (65535 - F) / 256;
TMR1L = (65535 - F) % 256;
定时的结果不准,在Watch中查看时,甚至连计算结果,也就是赋入 TMR1H 和 TMR2L 的数值都不对。
/*************************/
如果赋值之前提前进行计算,即增加两个中间变量
然后赋值
temH = (65535 - F) / 256;
temL = (65535 - F) % 256;
TMR1H = temH;
TMR1L = temL;
这样的计算结果就正确了。
/*************************/
我不知道这是C语言的知识还是MPLAB X IDE或者XC8编译器的问题,各位高手有知道的吗?
|