Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
Воистину здравствуйте! Может, АВРщикам кому полезно будет про тоггл(+)
Отправлено
Quasy 28 апреля 2008 г. 09:54
Известно, что биты портов у старых АВР тоглятся уныло - 2 регистра и 4 такта отдай и не греши.Тут понадобилось парафазно пищалкой на m64 управлять по битам PORTD.5-PORTD.6.Думал команд-тактов под 10 влечу. Ан нет, те же 4 такта, без ксора, и даже регистр всего один портится. Таким образом, если свободен соседний пин порта, можно тогглиться вот так:
///
in r16,PORTD
andi r16, ~(1 << 6) ;0 --> в старший бит пары
subi r16, -(1 << 5) ;младший бит пары - toggle
out PORTD,r16
///
Может, получше можно сделать?
Составить ответ | Вернуться на конференцию
Ответы