【问题标题】:AVR Long running code from within timer interruptAVR 来自定时器中断的长时间运行代码
【发布时间】:2010-09-12 09:56:29
【问题描述】:

我有一些代码需要每 2 分钟运行一次,这看起来很简单。问题似乎是从计时器内触发长时间运行的进程会导致计时器摇摆不定?任何建议。

我的 C 知识不是很好,所以请帮助我提供一些基本的想法。 MCU 是 Atmel Mega128L

长时间运行的进程是通过 Telit GSM 设备(通过 UART1)的 http 调用,这本身就很好用,但需要在主循环之外运行,因为它需要监控其他进程。

【问题讨论】:

    标签: timer avr avr-gcc atmega


    【解决方案1】:

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

    【讨论】:

    • 问题是主循环正在等待一个 uart char 并且不会运行通过检查长时间运行的进程。在任何情况下都会尝试并实施这一点。发送。
    • 你不能让“等待 uart char”进入另一个中断吗?
    • 昨晚就是这么想的,今天去试试。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2011-11-11
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多