Нужна помощь в виде куска кода. (НЕ СИ, ВАСКОМ!!!)
Есть 4 под программки А1….А4 выводится инфа на LCD в них, 2 не фикс. кнопки, при нажатии на Кн1 переход на А1 если еще нажать, то на А2 и … по кольцу.
Если нажать сразу 2 Кн1 и Кн2 то выходим в меню.
У кого есть может готовые решения?
2 не фикс. кнопки по кольцу.
Сообщений 1 страница 4 из 4
Поделиться12011-01-09 22:05:06
Поделиться22011-01-11 20:18:55
я бы сделал так:
dim i as byte ' добавляем счетчик нажатий
if pinx.x = 0 then 'при условии нажатия кнопки КН1 проверяем, не нажата ли вторая
if pinx.y = 0 then call menu ' если нажата - переходим в подпрограмму menu (хотя, применять вложенные условия не рекоммендуется)
incr i 'увеличиваем значение счетчика на 1
if i = 1 then call a1
if i = 2 then call a2
if i = 3 then call a3
if i = 4 then call a4
end if
a4:
i=0 ' сбрасываем счетчик после 4-й подпрограммы
return
что-то типа этого, только не забываем о дребезге! не претендую на оптимальность, я еще только учусь
Отредактировано demonizer (2011-01-11 20:21:06)
Поделиться32011-01-11 22:20:49
Можно чуть оптимизировать переход на пп:
on i gosub a0, a1, a2, a3
ну и зациклить и поставить waitms 500 где нибудь.
Поделиться42011-01-11 23:19:00
в зависимости от программы можно сделать и так:
a1: if Pind.1=0 then goto menu do Debounce Pind.0 , 0 , a2 --- loop a2: if Pind.1=0 then goto menu do Debounce Pind.0 , 0 , a3 --- loop a3: if Pind.1=0 then goto menu do Debounce Pind.0 , 0 , a4 --- loop a4: if Pind.1=0 then goto menu do Debounce Pind.0 , 0 , a1 --- loop