搜索
bottom↓
回复: 6

深入浅出AVR单片机127页疑问及一个笔误——[非笔误,已解决]

[复制链接]

出0入0汤圆

发表于 2013-8-26 22:15:18 | 显示全部楼层 |阅读模式
本帖最后由 Gorgon_Meducer 于 2013-8-27 10:16 编辑

各位大哥,帮忙看看以下这句怎么理解
       当预分频器选择的时钟频率较高时,TCNT1L的值在写入后可能会立即被改变,这种重载方式可能“丢失”计数器低半字节的设置信号??这个可以举例说明吗
       另外指出个笔误:127页上的,上面刚写了个错误的例子,重载16位定时器时,应先重载计数器高半字节的,结果下面的保险例子中,还是先在重载低半字节了      

出0入296汤圆

发表于 2013-8-27 10:13:07 | 显示全部楼层
下面的例子不是笔误,因为已经先通过TCCR0B = 0x00; 把定时器的计数关闭了,所以后面的设置顺序是不重要的。
关于丢失低半字节信息的例子是这样的:
1、首先,由于设置高低半字节之间存在时间差,我们假设有n个系统周期(n>0)
2、假如设置的低半字节值   Low_Byte+(n/预分频系数) 超过了0xFF,也就是发生了进位,则
    在设置高半字节后,实际上进位被覆盖了,而低半字节的信息就丢失了
-------------------------
彻底的安全的设定定时器频率的方式是使用CTC或者其它能够设置TOP值的模式。

出0入0汤圆

 楼主| 发表于 2013-8-27 12:53:56 | 显示全部楼层
Gorgon_Meducer 发表于 2013-8-27 10:13
下面的例子不是笔误,因为已经先通过TCCR0B = 0x00; 把定时器的计数关闭了,所以后面的设置顺序是不重要的 ...

首先感谢老师这么及时的回复与指导,
    1.我想我大概明白了,起初我把资料文档中的“写16位寄存器时,应先写入该寄存器的高位字节”这个概念给混到这个例子中去了,这个是针对汇编代码的
    2.文档中还提到“使用"C"语言时,编译器会自动处理16位操作”,因为文档中给出的例子是:“TCNT1=0x1FF”整个16位来操作的,而老师的书中还是分开8位来操作的,我在ICCAVR中的反汇编lis文件中也看了下,顺序还是没有自动处理过来,在这点上还是有点不太明白,想再次请教下老师,这个该作何理解?

出0入296汤圆

发表于 2013-8-27 13:57:47 | 显示全部楼层
本帖最后由 Gorgon_Meducer 于 2013-8-27 13:59 编辑
sinxcosytana 发表于 2013-8-27 12:53
首先感谢老师这么及时的回复与指导,
    1.我想我大概明白了,起初我把资料文档中的“写16位寄存器时, ...


对于16位操作,那个是编译器版本的问题,不同版本行为可能不一样,对AVR来说,编译器通常会按照小端对齐的字节序来操作。
这也是为什么例子代码示范的方式是先关闭定时器的原因不依赖于编译器。

出0入0汤圆

 楼主| 发表于 2013-8-27 15:08:56 | 显示全部楼层
Gorgon_Meducer 发表于 2013-8-27 13:57
对于16位操作,那个是编译器版本的问题,不同版本行为可能不一样,对AVR来说,编译器通常会按照小端对齐 ...

完全明白了,谢谢了!

出0入0汤圆

发表于 2014-3-3 16:04:09 | 显示全部楼层
本主题需向作者支付 5 莫元 才能浏览

出0入296汤圆

发表于 2014-3-3 17:06:26 | 显示全部楼层
miyadai 发表于 2014-3-3 16:04
本主题需向作者支付 5 莫元 才能浏览

没什么特别的,不必好奇
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-3 06:17

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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