2010-09-12 53 views
1

我有一些代码需要每2分钟运行一次,看起来很简单。问题似乎是从定时器内触发长时间运行的进程会导致定时器抖动?有什么建议么。AVR来自定时器中断的长时间运行代码

我的C知识并不是那么棒,所以帮助我一些基本的想法。该MCU是一个Atmel Mega128L

长时间运行的过程是通过Telit GSM设备(通过UART1)的http调用,这在它自己的工作很好,但需要用尽主循环,因为它需要监视其他流程。

回答

5

我被告知要在中断中设置一个标志,并从主例程中完成那些长时间的工作,它会永久检查标志,任务循环。

+0

问题在于主循环正在等待uart字符,并且不会运行以检查长时间运行的进程。将在任何情况下尝试并实施此操作。 TX。 – 2010-09-12 13:11:38

+3

你不能把“等待uart char”写入另一个中断吗? – lImbus 2010-09-12 20:42:58

+0

这就是我昨天晚上想到的,今天就去试试。谢谢! – 2010-09-13 06:16:22