Шаблон программы вечного цикла

Для выполнения основной программы циклично, то есть для выполнения напрмиер мониторинга состояния на выводах микроконтроллера, или мониторинга состояния буффера UART в программах применяют вечный цикл.

Вечный цикл - это программа, которая выполняется на всем протяжении времени, от включения устройства и до его выключения. В тело вычного цикла обычно помещают обработчики и вызовы других функций, которые выполняют свои определенные действия.
Например:
Программа должня мониторить состояние буффера UART микроконтроллера, и по приходу байта выводить слово "Ок".
Для реализации данной программы необходимо задействовать вечный цикл в основной программе.
Так же необходимо написать обработчик прерывания от модуля UART по приходу байта. В нем и будет код, который будет выполнять действие отправки слова "Ок".

  1. #include <avr/io.h>
  2.  
  3. #define nop() {asm("nop");} //дефаним паузу "nop" - no operation
  4.  
  5. unsigned int x,i;//перечисление переменных
  6. void delay(int t);
  7.  
  8. // function delay
  9. void delay(int t)
  10. {
  11. for (x=t; x>0 ;x--)
  12. nop ();
  13. }
  14.  
  15. /Главная программа
  16. int main (void)
  17. {
  18. ...
  19.  
  20. //Вечный цикл
  21. while (1)
  22. {
  23. ...
  24. }
  25. }

Логика программы следующая:
Для приема и отправки данных необходимо инициализировать модуль UART. Программу инициализации модуля можно вставить в начало кода основной программы. Напомню, структура программы для микроконтроллера имеет следующий вид:
структура программы для микроконтроллера

Разберем структуру приведенной выше программы.
разбор структуры программы

Я думаю после наглядного показа, все станет понятно, в любом случаи вопросы просьба писать в комментарии.