ol82 писал(а):какие волшебные слова нужно дописать в коде (ir_locator.asm), чтоб одновременно 2 выхода МК выдавали инверсные логические уровни, как на схеме (1).
Ты бы хоть указывал ссылку на код и обсуждение, думаешь я помню что говорил месяц назад?
![Smile :)](http://roboforum.ru/images/smilies/smile.gif)
Добавляем доп. выход в код. Был один выход: "LED на PB0", переименовываем в led1. Добавляем led2:
- Код: Выделить всё • Развернуть
;* Определения
.equ led1 = 0 ;led1 на PB0
.equ led2 = 2 ;led2 на PB2
Программируем пин на выход как и led1:
Было:
- Код: Выделить всё • Развернуть
RESET:
sbi DDRB, led1 ;подключаем led1 на выход PORTB
Стало:
- Код: Выделить всё • Развернуть
RESET:
sbi DDRB, led1 ;подключаем led1 и led2
sbi DDRB, led2 ;
Кста, в коде забыта предварительная установка пинов, такшта добавляем, теперь получ. так:
- Код: Выделить всё • Развернуть
RESET:
sbi DDRB, led1 ;подключаем led1 и led2
sbi DDRB, led2 ;
sbi DDRB, ir_led ;подключаем IR LED на выход PORTB
cbi DDRB, tsop ;подключаем TSOP на вход PORTB
sbi PORTB,tsop ;включаем "подтяжку"
cbi PORTB, led1 ;начальные установки выходов: гасим led1 и зажигаем led2
sbi PORTB, led2 ;
Осталось добавить обработку 2-го выхода в коде проверки входа TSOP.
Было:
- Код: Выделить всё • Развернуть
;когда пачка импульсов выдана - проверяем, есть ли сигнал от TSOP
sbis PINB, tsop ;если уровень на выходе TSOP низкий (т.е. сигнал есть)
rjmp ledon ;то идем зажигать led1
cbi PORTB, led1 ;иначе гасим led1
rjmp wait_next ;и переходим к ожиданию следующей пачки
ledon: sbi PORTB, led1 ;гасим LED
Стало:
- Код: Выделить всё • Развернуть
;когда пачка импульсов выдана - проверяем, есть ли сигнал от TSOP
sbis PINB, tsop ;если уровень на выходе TSOP низкий (т.е. сигнал есть)
rjmp ledon ;то идем зажигать led1 и гасить led2
cbi PORTB, led1 ;иначе гасим led1 и зажигаем led2
sbi PORTB, led2 ;
rjmp wait_next ;и переходим к ожиданию следующей пачки
ledon: cbi PORTB, led2 ;гасим led2 и зажигаем led1
sbi PORTB, led1
Кажись все просто? Или не? Прога занимает целых 66 байт.
![Smile :)](http://roboforum.ru/images/smilies/smile.gif)
ATtiny13 memory use summary [bytes]:
Segment Begin End Code Data Used Size Use%
---------------------------------------------------------------
[.cseg] 0x000000 0x000042 66 0 66 1024 6.4%
[.dseg] 0x000060 0x000060 0 0 0 64 0.0%
[.eseg] 0x000000 0x000000 0 0 0 64 0.0%
Assembly complete, 0 errors. 0 warnings
Общий код, убрать ".pdf", ибо файлы asm запрещены:
Добавлено спустя 11 минут 42 секунды:Кста, на первый взгляд грамотный код. Есть коррекция ошибок и код на СИ.