打印
[开发工具]

确认过XC8读写16bit定时器值顺序吗

[复制链接]
541|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
18F芯片的16bit定时器(T1,3,5等)都有一个协助原子操作读写TMRxH:TMRxL的设定TXCON.bit1(TxRD16),
实现方法是通过读写TMRxL触发TMRxH缓冲
那么读时序就要求先读TMRxL,再读TMRxH,写时序即要求先写TMRxH,再写TMRxL
新的XC8 在h文件中对很多大于8bit且遵循小端地址顺序的模块寄存器都定义成16bit模式,如定时器,捕捉,AD结果和E2地址和部分的USART的波特率设定等, 这方便了程序书写,
不知道在使能了定时器的16B读写模式时使用TMRx (unsigned short)这种方式,XC8能不能完美兼容呢
当年使用C51操作C8051F020的DAC时,被这个坑害的很惨,现在都铭记于心

使用特权

评论回复
沙发
Light_David|  楼主 | 2019-11-21 11:40 | 只看该作者
结案了,已经确认了,通过汇编代码可以看出XC8读写打开16B模式下的定时器不用有顾虑
不过也看得出免费版本的编译器真是没谁了,到处加NOP,

write.png (13.26 KB )

write.png

read.png (11.86 KB )

read.png

使用特权

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

本版积分规则

个人签名:二姨提醒你:此人回答问题基本都是扯D.

15

主题

273

帖子

2

粉丝