Схема автопилота - {{:au:quadcontrollerv4.png?direct&400|}} Микроконтроллер - {{:au:ic-atmega8a-pu_02_lrg.jpg.jpeg?direct&400|}} Для того, чтобы считывать сигналы с приемника, используются прерывания - //"Кроме INT0 и INT1 на каждом (почти) пине Atmega328 есть прерывания, которые называются PCINT (Pin Change Interrupts). Эти прерывания герерируются, когда изменяется состояния пина. Все такие прерывания делятся на три группы, поскольку их много, а регистры для их управления восьмибитные. Прерывание PCI0 генерируется, когда изменяется состояние любого пина из PCINT0...PCINT7, при условии что прерывание на этом пине разрешено. Аналогично PCI1 генерируется при смене состояния пинов PCINT8...PCINT14, а прерывание PCINT2 генерируется при смене состояния пинов PCINT16...PCINT23. Для того, чтобы разрешить прерывание на пине, требуется записать единицу в соответствующий бит регистра PCMSK0, PCMSK1 или PCMSK2, в зависимости от того, к какой группе относится пин."// (с) http://arduinonsk.ru/blog/87-all-pins-interrupts То есть INT0 и INT1 используются для приема Pitch и Collective сигналов. Для того, чтобы принимать еще два сигнала, у нас остается три прерывания - PCINT0_vect, PCINT1_vect и PCINT2_vect.