[问题] 单芯片UART当掉

楼主: Haha10101 (水啦~)   2015-03-28 07:09:51
各位先进好:
目前是新手在写一个单芯片,使用两个UART,一个负责解sensor资料,一个负责通讯。
负责通讯UART的TX会定时每30秒往外传讯息,除此之外当他的RX收到命令时,他的TX也
会往外传讯息出来,有点像一问一答的方式兼顾30秒定时回答的功能。
但不知道什么原因,每当一问一答经过一段时间,单芯片就会当掉,再也没有反应。
如果纯定时TX送出来是正常的,只有一问一答会当掉
程式架构大概如下:
void main()
{
while(true)
{ if(DecodeSensor())
{
if(Timer==30000) { SendData(); Timer = 0;}
}
if(DecodeRF()) SendData(); //SendData为92 bytes.
}
以上尤其在一问一答执行到一半常常整个芯片就当掉
当我改成:
void main()
{
while(true)
{ if(DecodeSensor())
{
if(Timer==30000) { SendData(); Timer = 0;}
}
if(DecodeRF()) Timer = 28000;
}
也就是RF解成功后过两秒由DecodeSensor那里送出去,此时芯片就都不会当掉,
请教这是什么原因?
谢谢大家
作者: alongalone (沿着孤单的路)   2015-03-28 16:53:00
有没有可能rf解太久拖到sensor那边, 这看起来没并行
作者: sprian   2015-04-10 16:07:00
没有太多线索,不过最常发生的是中断做太多事了,中断拖太长,其他中断一直进来,没处理好,迅速葛屁了

Links booklink

Contact Us: admin [ a t ] ucptt.com