完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我试图编写一个汇编例程来测试PIC18F2431的特殊函数寄存器。我只想在SFRS中写一个0x55 0xAA模式。我不知道如何使它与TMR0H一起工作。我知道TMR0H是实际TMR0高字节的缓冲区。但是我不能让我的测试在调试器中工作。
|
|
相关推荐
12个回答
|
|
数据表中的这一部分可能有帮助:首先写入TMR0H,因为对TMR0L的写入更新计数器;首先从TMR0L读取,因为从计数器更新TMR0H寄存器。
|
|
|
|
我以前看过数据表的那一部分,并试图从中提取我需要做的事情,但是我仍然无法使它工作。我以前也试过关闭TMR0。我有时能通过考试,但这是不可预测的。我的一个理论是,在TMR0L的读取之后,可能需要几个指令周期来更新TMR0H,所以我插入了一些NOP,但仍然无法使测试可靠通过。这里有一些更新代码,其中包含了先前的建议(关闭TMR0,首先写入TMR0H,读取TMR0L FIR)。问题继续存在。
|
|
|
|
我尝试扩展在Microchip B类安全库中提供的CPU寄存器测试。我使用C18编译器和MPLAB X IDE V4.15
|
|
|
|
这是我的主要W/CONFIG设置。它调用CPU RG测试,然后有一个无限循环,我可以设置一个断点来观察结果。这是从Microchip B类安全LIB样本代码中约定的。
|
|
|
|
硬件调试器还是MPLABX模拟器?
|
|
|
|
硬件调试器还是MPLABX模拟器?皮克特3
|
|
|
|
不,它确实是读寄存器“F”。它在Q2周期读取WREG寄存器,在Q4周期写入寄存器“f”。为什么不逐个检查代码并查看Watch/Variable窗口中的寄存器TMR0H和TMR0L呢?
|
|
|
|
我认为数据表是错误的。参见PIC18参考手册的第31-99页,其中在Q2周期中读取WREG。
|
|
|
|
下面是我的代码的一部分:当我让程序运行时,测试传递和控制返回到我的主函数。表窗口显示TMR0L和TMR0H都设置为0xAA预期。但是如果我在本节之前停止程序并逐步执行它,那么TMR0H将被清除,执行MOVFF WREG、TMR0L或MOVWF TMR0L中的任何一个,并且测试失败。我不确定为什么会发生这种情况,但是看起来我的代码在正常运行时(没有通过w/调试器)像预期的那样执行。
|
|
|
|
我发现THISTPS://www. McCHIP.COM/FUMMS/M79633ASPXand将建议您让代码运行。这似乎是调试器的一个定时问题。!
|
|
|
|
天哪,太令人沮丧了,这一天浪费了很多时间…谢谢大家的帮助。
|
|
|
|
不要忘记,当单步执行代码时,调试器同时读取Timer0L和Timer0H以更新监视窗口,破坏“movwf TMR0H”指令的结果。而不是单步使用断点或“run to cursor”来停止“movwf TMR0L指令”之后的执行。通过这种方式,您可以避免调试器对TMR0L/H的额外读取。
|
|
|
|
只有小组成员才能发言,加入小组>>
4778 浏览 9 评论
1814 浏览 8 评论
1733 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
2941 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2043 浏览 5 评论
419浏览 1评论
1100浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
343浏览 0评论
253浏览 0评论
LAN9252使用SQI通信,进行数字复位后读BYTE_TEST异常
1751浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-3-28 23:07 , Processed in 1.044625 second(s), Total 84, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号