[AVR单片机] 寄存器的值为什么和程序里面付的值不一样呢?

[复制链接]
2469|6
 楼主| 宇航3000 发表于 2011-4-8 23:29 | 显示全部楼层 |阅读模式
我在给OCR1A赋值时, 仿真运行为什么左边寄存器和程序里面赋的值不一样呢 ?
我程序赋值为: OCR1AH=0x29;
               OCR1AL=0x0F;   
.
寄存器却显示: OCR1AH=0X01;
               OCR1AL=0x0F;

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
airwill 发表于 2011-4-10 16:42 | 显示全部楼层
我感觉是仿真器的问题, 如果最终结果没有错误, 那些问题都不用去管它
 楼主| 宇航3000 发表于 2011-4-10 22:13 | 显示全部楼层
最终结果好像是没什么问题
ccxlslr 发表于 2011-4-12 14:17 | 显示全部楼层
这是16位寄存器,要低字节写完后才变!说明书上有.
ccxlslr 发表于 2011-4-12 14:21 | 显示全部楼层
为什么,8位机在处理16位或32位数据时要用中断.就是怕不同步,引起不必要的错误.

事实上OCR1AH只是一个缓存器,所有16位寄存器的,高字节都用它,只是名字不同而已. 当写低字节时,才将缓存器的值一起写入
 楼主| 宇航3000 发表于 2011-4-14 12:43 | 显示全部楼层
为什么,8位机在处理16位或32位数据时要用中断.就是怕不同步,引起不必要的错误.

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


那当我写完低字节的时候,高字节的应该也变成我设置的值啦, 为什么还是错误的呢?是不是可以不用管它呢
ccxlslr 发表于 2011-4-14 13:24 | 显示全部楼层
你啥型号啊.
我试过atmega16可以的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

165

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部