Re: Контроль уровня воды в баке на Атмега8
Добавлено: Чт мар 09, 2017 15:21:42
Часто ставят что есть. И заказать с доставкой тини может быть дороже чем взять мегу что лежит в шкафу)BOB51 писал(а): Ну и зачем цеплять избыточный МК
Здесь можно немножко помяукать :)
https://radiokot.ru/forum/
Часто ставят что есть. И заказать с доставкой тини может быть дороже чем взять мегу что лежит в шкафу)BOB51 писал(а): Ну и зачем цеплять избыточный МК
Спасибо), отличный подход, если я все правильно понял)BOB51 писал(а):Не знаю, самое удобное опрос кнопок по прерыванию.(от таймера правда) и дребезг можно убрать и реагировать на любые комбинации, хоть на все сразу нажатые кнопки.
В том то и дело, что это только часть кода, я же говорю, мне еще 8ки мало, но эта часть первоочередная, скоро пригодится, а времени совсем не будет.BOB51 писал(а):По таймеру, а не по входным линиям (как у топикстартера в замысле).
Ну и зачем цеплять избыточный МК там, где оный экономически не обоснован.
Другое дело - для удовольствия "на вырост" - но ... тогда заранее надо позаботится о минимальном использовании ресурсов, чтоб попозже при изменениях/дополнениях в программе не пришлось все заново переделывать.
Код: Выделить всё
.macro delay5 ; задержка
ldi r22, low(@0)
ldi r23, high(@0)
ldi r24, byte3(@0)
count: subi r22,1
sbci r23,0
sbci r24,0
brcc count
.endmКод: Выделить всё
;КОД ОСНОВНОЙ ПРОГРАММЫ
sbis PINB,1
sbi PORTD,0
delay5 tau
rjmp man
s: sbis PINB,0
rcall s1
delay5 tau
ret
s1: sbic PINB,1
rcall s2
delay5 tau
ret
s2: dec R18
inc R18
breq s3
nop
ret
s3: sbis PINB,2
rcall s4
delay5 tau
ret
s4: sbis PINB,3
rjmp s4
delay5 tau
sbic PINB,3
sbi PORTD,0
delay5 tau
ret
start: sbic PINB,2
rcall start1
delay5 tau
ret
start1: sbis PINB,1
rcall start2
delay5 tau
ret
start2: sbic PINB,3
sbi PORTD,0
delay5 tau
sbis PINB,3
ret
star: sbis PINB,2
rcall star1
delay5 tau
ret
star1: cbi PORTD,0
ldi R18,0
nop
ret
stop: sbic PINB,0
cbi PORTD,0
delay5 tau
ret
man: ldi R18,1
sbis PINB,0
rcall start
delay5 tau
sbic PINB,1
rcall stop
delay5 tau
rcall star
rcall s
rjmp man