Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру

Глава 1б. Некоторые Аrdиiпо-задачи на ассемблере 425 "On/Off" 00 4В 7В 7В CF 4F CF СВ 4В 7В 7В CF FF 0 0 FF 0 0 4 В 7В 7В CF 4 Е CF СВ 4В 7В 7В CF FF 0 0 FF 00 4В 7В 7В CF 4 F CF СВ 4В 7В 7В CF FF 0 0 FF 00 4В 7В 7В CF 4F CF СВ 4В 7В 7В CF FF 0 0 FF 00 FF 00 4В 7В 7В CF 4F CF СВ 4В 7В 7В CF FF 00 FF 00 4В 7В 7В CF 4F CF СВ 4В 7В 7А CF FF 0 0 FF Как видим, 7-й и 8-й байты в посылке от каждой кнопки различаются (для нагляд­ ности они подчеркнуты) . Теперь можно составить программу (файл I R_pult_ proba.asm в архиве по адресу, указанному во введении), которая будет по нажатию каждой из кнопок зажигать соответствующий светодиод (см. рис. 1 6. 1 2). Программа предусматривает ситуацию ошибок при приеме байтов за счет флуктуаций такто­ вой частоты при работе от встроенного генератора, потому анализирует оба разли­ чающихся байта и возможные их варианты. В простейшем случае «кварцованной» частоты определения одного из различающихся байтов для каждой из команд вполне достаточно. Управление серводвигателем Серводвигатель представляет собой моторчик с редуктором, вал которого можно поворачивать на заданное число угловых градусов относительно нулевого положе­ ния (как правило, в пределах полуокружности) . Более распространенные и универ­ сальные шаговые двигатели могут делать то же самое и притом в произвольном диапазоне углов поворота, но принцип управления у них другой, и без специальной микросхемы-драйвера подключить их к контроллеру весьма затруднительно. А серводвигатели управляются через единственный вывод напрямую от сигналов логических уровней (правильное подключение серводвигателя показано на рис. 1 6. 1 3). +S B 1 Reset Vcc 20 + S B к едаптеру ТХ 2 RXD (PDO) SCK 1 9 С2 UART RX 3 TXD (PD1 ) MISO 1 8 т 1 , о 1--J 4 XTAL2 (РА1 ) MOSI 1 7 4 МГц c::::J 5 XTAL1 (РАО) РВ4 1 6 +5,0 В, 2,О А 1--1 6 INTO (PD2) РВ3 1 5 с з 220,0 7 INT1 (РDЗ) РВ2 14 :t + н 8 PD4 (ТО) РВ1 1 3 � 2 9 PDS (Т1 ) РВО 1 2 + 1 0 GND PD6 1 1 ATtiny231 3 FS51 09M Рис. 1 6. 1 3. Подключение серводвигателя к контроллеру ATtiny23 1 З

RkJQdWJsaXNoZXIy MTExODQxMg==