Я уже несколько лет модифицирую код микроконтроллера AVR и PIC для работы, но никогда не писал ничего с нуля, я это прекрасно понимаю.
Сейчас я начинаю писать свой собственный код, и у меня возникают проблемы с началом работы. Мне было интересно, как другие люди начинают писать код, и если есть книги или учебники, которые порекомендуют это.
Вы начинаете с кодирования вашей функции инициализации, затем прерываете таймеры, затем основной цикл while (1) ... Мне интересно, как лучше всего начать.
Спасибо
Мой любимый учебник AVR "с нуля" https://www.mainframe.cx/~ckuethe/avr-c-tutorial/
У каждого свой стиль для маленьких встроенных систем. Вот мой:
Мне нравится использовать множество C-файлов, имя каждого из которых составляет префикс для функций. Например,
led_init()
иled_tick()
оба вled.c
. Это сохраняет вещи модульными и помогает с мобильностью.Я использую
common.h
заголовочный файл для определения типов, но отдельные включения для каждого модуля.Я склонен использовать один системный таймер для фрираннинга (а
systime.c
), а затем вызывать модули для вызоваsystime_get()
функции, чтобы получить текущее время в системных тиках или миллисекундах. Каждый модуль может затем планировать события через программные таймеры, используяX_tick()
функции.common.h:
uart.h:
uart.c:
led.h:
led.c:
main.c:
Вот два «реальных» проекта, использующих этот стиль для AVR и MSP430 .
источник