完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,我试图使用HEF闪存擦除/写入程序从数据表,但由于某种原因,这两个程序擦除块和写入块每次被取出导致微控制器复位。我确实尝试过通过调试器PICKIT 3执行它们,但是没有导致重置,并且两个例程都执行得很好。看起来擦除/写块在代码好的开头执行,但是在代码的末尾导致重置。逐个调试器逐步执行代码似乎都行。任何建议都可以。错了????
|
|
相关推荐
4个回答
|
|
我已经禁用WDT,也尝试CLRWDT仪器。在加载锁存器中,但问题仍然存在。
|
|
|
|
如果没有看到你的程序代码,我猜你会让主()函数返回(到哪里去!)这会导致PIC复位。
|
|
|
|
这里是擦除块例程从数据表中的实际副本。我只用HEF的最后16个单词。我一在程序中执行这个例程就得到了重置,但如果我通过PICKIT3重置执行它,就不会发生重置。如果我注释掉它,程序的其余部分就工作得很好……没有RESET,但是有默认的校准数据。如果我把它放在程序接近开始的不同部分,看起来ERASE_BLOCK可以不重置地工作。我想这个问题可以通过CALL解决,但是通过PICKIT3执行得很好?FLASH_BLOCK_START EQU 0x3F0ERASE_BLOCK:BCF INTCON,GIE;禁用所需的ints序列将正确执行BANKSEL PMADRL MOVLW LOASH_BLOCK_START;加载擦除地址边界MOVWF PMADRL MOVRL MOVLW高FLASH_BLOCK_START;加载擦除地址边界MOVWF的上6位PMADRH BCF PMCON1,CFGS;非配置空间BSF PMCON1,免费;指定擦除操作BSF PMCON1,WREN;启用写入;BANKSEL PORTA BTFSS PORTA,CAL;意外擦除保护GOTO NO_ERASE;如果需要,禁用擦除。pin未被设置为BANKSEL PMCON1;MOVLW 55h;启动擦除MOVWF PMCON2所需的序列的开始;写入55h MOVLW 0AAh;MOVWF PMCON2;写入AAh BSF PMCON1,WR;设置WR位以开始擦除NOP;当处理器启动NOP时强制执行NOP指令;程序存储器的行擦除。处理器停止直到擦除过程完成NO_ERASE;在擦除处理器继续执行第三条指令BCF PMCON1,WREN之后;禁用BSF INTCON,GIE的写入;启用中断RETLW 0
|
|
|
|
我建议你把你正在编程的实际代码上传到PIC,所有这些。
|
|
|
|
只有小组成员才能发言,加入小组>>
5244 浏览 9 评论
2035 浏览 8 评论
1955 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3209 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2260 浏览 5 评论
779浏览 1评论
672浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
598浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
682浏览 0评论
579浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 14:14 , Processed in 1.214296 second(s), Total 55, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号