打印
[AVR单片机]

寄存器的值为什么和程序里面付的值不一样呢?

[复制链接]
1781|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我在给OCR1A赋值时, 仿真运行为什么左边寄存器和程序里面赋的值不一样呢 ?
我程序赋值为: OCR1AH=0x29;
               OCR1AL=0x0F;   
.
寄存器却显示: OCR1AH=0X01;
               OCR1AL=0x0F;

如果我单步执行,执行完 OCR1AH=0X01;  这条语句都还是一样的呢, 再执行下一条OCR1AL=0x0F 后 , OCR1AH的值就变了,不知道为什么

ourdev_629219YQVC97.jpg (89.99 KB )

ourdev_629219YQVC97.jpg

相关帖子

沙发
airwill| | 2011-4-10 16:42 | 只看该作者
我感觉是仿真器的问题, 如果最终结果没有错误, 那些问题都不用去管它

使用特权

评论回复
板凳
宇航3000|  楼主 | 2011-4-10 22:13 | 只看该作者
最终结果好像是没什么问题

使用特权

评论回复
地板
ccxlslr| | 2011-4-12 14:17 | 只看该作者
这是16位寄存器,要低字节写完后才变!说明书上有.

使用特权

评论回复
5
ccxlslr| | 2011-4-12 14:21 | 只看该作者
为什么,8位机在处理16位或32位数据时要用中断.就是怕不同步,引起不必要的错误.

事实上OCR1AH只是一个缓存器,所有16位寄存器的,高字节都用它,只是名字不同而已. 当写低字节时,才将缓存器的值一起写入

使用特权

评论回复
6
宇航3000|  楼主 | 2011-4-14 12:43 | 只看该作者
为什么,8位机在处理16位或32位数据时要用中断.就是怕不同步,引起不必要的错误.

事实上OCR1AH只是一个缓存器,所有16位寄存器的,高字节都用它,只是名字不同而已. 当写低字节时,才将缓存器的值一起写入 ...
ccxlslr 发表于 2011-4-12 14:21


那当我写完低字节的时候,高字节的应该也变成我设置的值啦, 为什么还是错误的呢?是不是可以不用管它呢

使用特权

评论回复
7
ccxlslr| | 2011-4-14 13:24 | 只看该作者
你啥型号啊.
我试过atmega16可以的

使用特权

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

本版积分规则

30

主题

165

帖子

2

粉丝