Помогите пожалуйста! Как в ассемблере включить ногу на прием и если на ней пояляется еджиница то перейти туда то.
И подскажите сайты или электронные книги по ассемблеру для авр.
Спасибо
roboforum.ruТехнический форум по робототехнике. |
|
|
;* Определения
def t = r16 ; переменная
.equ key0 = PB3 ; кнопка0 на PB3
.equ key1 = PB4 ; кнопка1 на PB4
cbi DDRB, key0 ; настройка на вход
cbi DDRB, key1 ; настройка на вход
sbi PORTB, key0 ; включить подтягивающий резистор (активный сигнал будет масса)
sbi PORTB, key1 ; включить подтягивающий резистор (активный сигнал будет масса)
;.......
sbis PINB,key0 ; так мы увеличиваем
inc t ; или уменьшаем t при нажатии key0 и key1
sbis PINB,key1 ; если ничего не нажато - пропускаем
dec t
;.......
Delay:
dec t ; задержка по счетчику от t до 0
brne Delay ; t*3 тактов
;.......
Delay:
NOP
NOP
NOP
NOP
NOP
NOP
NOP
dec t ;задержка по счетчику от t до 0
brne Delay ;т.е. t*10 тактов
Delay:
dec t ;задержка по счетчику от t до 0
brne Delay ;т.е. t*3 тактов
ldi temp, TIME1 ;загружаем в temp длительность импульса
Delay1:
dec temp ;уменьшаем на единицу temp, пока
brne Delay1 ; не станет равным 0
ldi temp, TIME2 ;загружаем в temp длительность паузы между импульсами
Delay2:
dec temp ;уменьшаем на единицу temp, пока
brne Delay2 ; не станет равным 0
Delay3:
dec t1 ;задержка по счетчику t1 от 256 до 0
brne Delay3 ; т.е. 256*3 тактов
dec temp ;повторяем TIME3 раз задержку по t1
brne Delay3 ; т.е. всего (TIME3*256*3 + TIME3*3) тактов
aliens писал(а):Имею ввиду номиналы резистора и конденсатора чтобы получить 1 мгц
aliens писал(а):А почему RC лучше не использовать??
А вот это открытый вопрос, я пока не знаю.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23