Шаблон программы вечного цикла
Для выполнения основной программы циклично, то есть для выполнения напрмиер мониторинга состояния на выводах микроконтроллера, или мониторинга состояния буффера UART в программах применяют вечный цикл.
Вечный цикл - это программа, которая выполняется на всем протяжении времени, от включения устройства и до его выключения. В тело вычного цикла обычно помещают обработчики и вызовы других функций, которые выполняют свои определенные действия.
Например:
Программа должня мониторить состояние буффера UART микроконтроллера, и по приходу байта выводить слово "Ок".
Для реализации данной программы необходимо задействовать вечный цикл в основной программе.
Так же необходимо написать обработчик прерывания от модуля UART по приходу байта. В нем и будет код, который будет выполнять действие отправки слова "Ок".
#include <avr/io.h> #define nop() {asm("nop");} //дефаним паузу "nop" - no operation unsigned int x,i;//перечисление переменных void delay(int t); // function delay void delay(int t) { for (x=t; x>0 ;x--) nop (); } /Главная программа int main (void) { ... //Вечный цикл while (1) { ... } }
Логика программы следующая:
Для приема и отправки данных необходимо инициализировать модуль UART. Программу инициализации модуля можно вставить в начало кода основной программы. Напомню, структура программы для микроконтроллера имеет следующий вид:
Разберем структуру приведенной выше программы.
Я думаю после наглядного показа, все станет понятно, в любом случаи вопросы просьба писать в комментарии.