Аппаратные I2C (TWI) и SPI в ATmega328P без библиотек: полный драйвер TWI-мастера с start/stop/write/read, чтение EEPROM AT24C32 и регистров датчика MPU6050, SPI-мастер с примером вывода на дисплей MAX7219 и сдвиговый регистр 74HC595, типичные ошибки на шине.
Три важнейших подсистемы AVR в одном материале с кодом на чистом C: 10-битный АЦП ATmega328P (опорное напряжение, усреднение, измерение батареи через внутреннее 1.1V), работа с EEPROM без износа и спящие режимы с пробуждением по WDT и прерываниям для устройств на батарейках.
Полный разбор USART в ATmega328P на чистом C: расчёт UBRR и скорости обмена, посимвольная передача и приём, подключение printf через fdevopen, неблокирующий приём с кольцевым буфером по прерыванию RX, передача из буфера по UDRE-прерыванию и разбор текстовых команд.
Всё о прерываниях на AVR с примерами на чистом C: макрос ISR и векторы, внешние прерывания INT0/INT1 по фронту и уровню, Pin Change Interrupts на любой ножке, volatile и атомарный доступ, антидребезг кнопки в ISR, подсчёт импульсов энкодера и типичные грабли.
Разбираем таймеры/счётчики ATmega328P на чистом C: предделители и расчёт частоты, системный тик на 1 мс в CTC-режиме, Fast PWM и Phase Correct PWM для яркости светодиодов и мощности, точное управление сервоприводом на 16-битном Timer1 и генерация звука.
Полный гид по программированию микроконтроллеров Atmel AVR на чистом C: установка avr-gcc и avrdude, регистры DDRx/PORTx/PINx, мигание светодиодом, кнопки с подавлением дребезга, битовые макросы и Makefile — всё на примере ATmega328P.