問題是這樣的 我再沒開啟看門狗的狀態下,MCU一直重制,請問各位大大這會是哪些問題呢?溢位嗎?P.S. 我把有問題的副程式在while loop 他會讓我的MCU重制,但我把它放到其他地方去執行它又不會讓我MCU重制,而且還準確執行我要執行的動作。
P.S. 副程式
void IIC_MultipleBytes_Read(unsigned char SlaveAddr, unsigned char StartReg, unsigned char Length, unsigned char *RD_Buffer)
{
//unsigned char Status=0;
__disable_interrupt();
IIC_start(); //Start
IIC_write1byte(SlaveAddr|0x00); //Devicemode Write
if(IIC_ReadACK()) //ACK
{
SDA_H;
IIC_write1byte(StartReg); //Write Command
}
else
goto _error;
if(IIC_ReadACK()) //ACK
IIC_start(); //Restart
else
goto _error;
IIC_write1byte(SlaveAddr|0x01); //Device mode is Read
if(IIC_ReadACK())
{
while(Length)
{
*RD_Buffer++ = IIC_read1byte(); //DataByte1
Length--;
if(Length==0) IIC_NoACK();
else IIC_mack(); //ACK
}
}
_error:
IIC_stop(); //Stop
__enable_interrupt();
}
|