我公司一批产品,刚开始运行正常,可是一手动复位就出现死机现象.更换EEPROM后又会正常.电路使用的是PIC24FJ128GA010芯片.请对这类芯片比较熟悉的大侠指点这是为什么啊?是硬件问题还是软件的问题啊?望能给出几点可能原因,以便修改调试...<br />EEPROM电路如下.<br />https://bbs.21ic.com/upfiles/img/20079/2007912162048889.rar<br /><br />程序上电复位后,会对EEPROM进行初始化,代码如下:<br /><br />void EEDataInit(void)<br />{<br />unsigned char i;<br />unsigned int j;<br /><br />AT24_WP_TRIS = 0;<br /><br /><br />if(AT24EERadomRead(EE_TEST)!=0X55)<br />{<br /> AT24EEByteWrite(EE_TEST,0X55);<br /><br />Delayms(10);<br /><br />if(AT24EERadomRead(EE_TEST)!=0X55)<br /> { <br /><br /> if(I2C2STATbits.BCL)<br /> {<br /> I2C2CON=0x0000;<br /> <br /> PORTAbits.RA2=0;<br /> Delayms(5);<br /> PORTAbits.RA2=1;<br /> Delayms(5);<br /> PORTAbits.RA2=0; <br /> Delayms(5);<br /> PORTAbits.RA2=1;<br /> <br /> __asm__ volatile ("RESET");<br /> <br /> }<br /> <br /> else<br /> <br /> {<br /> unsigned char i; <br /> <br /> for(i=0;i<4;i++)<br /> SHOW_LED=0x00;<br /> InitShow();<br /> Show();<br /> <br /> while(1)<br /> {<br /> <br /> DataToDisplay();<br /> KEYScan(); <br /> <br /> CommtoPC(); <br /> }<br /> }<br /> <br /> }<br /><br />else<br />{<br />j=FANG_AN1;<br />for(i=0;i<8;i++)<br /> {<br /> if(AT24EERadomRead(j)>16)<br /> AT24EEByteWrite(j,0x00); <br /> <br /> j++;<br /> <br /> }<br />......//其它相似程序段<br /><br />}<br />}<br /><br />WORK_STATE = AT24EERadomRead(EE_WORK_STATE);<br /><br />......//其它相似语句<br /><br />}<br /><br />void main (void)<br />{<br />InitializeSys();<br /><br />while(1)<br /> {<br /> <br /> DataToDisplay();<br /> KEYScan(); <br /> <br /> CommtoPC(); <br /> }<br />}<br /><br /> 相关链接:<a href='https://bbs.21ic.com/upfiles/img/20079/2007912162048889.rar'>https://bbs.21ic.com/upfiles/img/20079/2007912162048889.rar</a> |
|