完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
晚上好,我们的产品是随着时间演变的,从PIC16F886开始,用各种PIC18代替,当前版本有PIC18F26K42。租用固件(因为随着时间的推移添加更多的功能)…哇,我用了16F8xx已经很久了,黑暗的时代:我已经适应了丰富的RAM、tiMERS和其他外围设备,无论如何,在改变所有的硬件定义、中断例程回到单个块和其他(见下文)项目编译之后。然而,在一个随机的时刻,它重置,然后它不确定地在一个循环内,我真的不知道它在哪里。这可能是启动程序的一部分,我将能够在周一进一步研究。从PIC18到PIC16的主要重大变化:在PIC18中,许多表从闪存加载到ram以加速执行,这对于只有384字节的16F是不可能的。我现在禁用了看门狗。n我触发问题,同时调试:-如果我点击暂停,然后恢复执行,它可能触发问题-如果我点击暂停,然后在从表读取之前恢复执行,它将触发问题更加频繁-如果我点击中断例程内的暂停,然后恢复它将触发问题似乎更频繁,如果我禁用中断,问题从来没有出现。中断例程是这样的。老实说,我不知道从哪里开始,除了开始重写整个固件,一次一小步,这样我就能确定问题何时出现,我希望我能当MCU有第一次重置时,获得一些信息。如何使应用程序在重置向量上中断,而不是在主(?)入口点上?
|
|
相关推荐
11个回答
|
|
可能的页面问题?(18F不使用PaSeSe)?你从ISR内部调用函数吗?堆栈溢出/下溢?
|
|
|
|
我认为这是一个程序集问题,看起来OPs代码是C。无论如何,我很想了解如何避免pic18xxk42上的pagesel。我对汇编不太熟练,但我在ISRs的K42内嵌程序集上使用PaxESEL访问不同页面中的SFR。我把所有的打字都浪费了吗?
|
|
|
|
|
|
这些不应该是逻辑.(&&),而不是逐位(&):而且,RCIF在PIR1寄存器中,但是RCIE在PIE1寄存器中。它们恰好在同一位置(位5),因此位和放大器可能起作用。
|
|
|
|
Re typos。这就是为什么最好粘贴真实的代码,而不是重新键入您对代码是什么的回忆。Re:逻辑/按位和s。这从来都不重要,而且寄存器中的位是相同的位号并不重要,因为这些表达式中的每一个都表示单个位变量,而不是一个BYTE。”&&”和“&”对于单个位变量是等价的。XC8为您保存这些位。参见XC8用户指南中的“5.10.1.4状态注册表保存”。
|
|
|
|
我可以向你保证,从列表文件中减去单字母拼写(PIR而不是PIE)的记忆力确实很复杂。为什么不在PIR1->test for zero,如果0跳过;ApplymaskonPIE1->test for zero,如果0跳过,那么在逻辑上和位上存在差异。感谢您阅读XC8手册的那一章。将读取,并立即测试。编辑:AddiultEngult:xxc8. h被包含在文件中,启用+ ReStBITE选项
|
|
|
|
如果总是设置XY位,则从ISR中删除谢码,以获得更有效的代码。
|
|
|
|
好,我想我发现了问题。ADC的配置有错误。复位时MCU的状态没有显示出明显的问题,所以我再次尝试重新组装程序。我注释掉了bit while循环中的所有函数,然后一次取消注释这些函数,看看什么时候开始失败了。我一取消ADC校验功能的注释就完成了。来自ADC的值总是0或255(左对齐),所以设备配置中肯定有错误。在那里,AdCON1= 0x30。我错误地把它设置为使用VREF+和Vref。VREF-连接到一个信道,另一个是未连接的。VREF-高于VREF+必须触发重置,虽然我不知道为什么,但是自从我纠正它,至今没有重置。
|
|
|
|
有趣。
|
|
|
|
有意思。如果引脚没有连接(浮动),那么可能一些电压尖峰或其他超出Vdd的噪声进入到这个“开放”输入并影响芯片操作(通过过电压引起复位)?
|
|
|
|
我认为这是一个程序集问题,看起来OPs代码是C。无论如何,我很想了解如何避免pic18xxk42上的pagesel。我对汇编不太熟练,但我在ISRs的K42内嵌程序集上使用PaxESEL访问不同页面中的SFR。我把所有的打字都浪费了吗?这也不是编译器第一次没有正确地执行操作(明智地选择银行和页面),只是认为这是一种远程的可能性,应该检查列表文件。
|
|
|
|
只有小组成员才能发言,加入小组>>
5160 浏览 9 评论
1998 浏览 8 评论
1927 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3170 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2225 浏览 5 评论
727浏览 1评论
612浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
501浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
626浏览 0评论
524浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 08:56 , Processed in 1.392623 second(s), Total 69, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号