Здравствуйте.
Есть плата на AtTiny13, тактовая кнопка, RGB лента.
Цель - переключать основные цвета на ленте по кругу.
Программа написана и всё работает:
$regfile = "attiny13.dat"
Config Portb.0 = Output 'Red
Config Portb.1 = Output 'Blue
Config Pinb.3 = Input 'Button
Config Portb.4 = Output 'Green
Dim Wtime As Byte 'Pause
Portb.0 = 0
Portb.1 = 0
Portb.4 = 0
Portb.3 = 0
Wtime = 1
Do
'Green:
Do
Portb.4 = 0
Portb.1 = 1
Portb.0 = 0
Wait Wtime
Loop Until Pinb.3 = 0
'Blue:
Do
Portb.4 = 1
Portb.1 = 0
Portb.0 = 0
Wait Wtime
Loop Until Pinb.3 = 0
'Red:
Do
Portb.4 = 0
Portb.1 = 0
Portb.0 = 1
Wait Wtime
Loop Until Pinb.3 = 0
'Yellow:
Do
Portb.4 = 0
Portb.1 = 1
Portb.0 = 1
Wait Wtime
Loop Until Pinb.3 = 0
'White:
Do
Portb.4 = 1
Portb.1 = 1
Portb.0 = 1
Wait Wtime
Loop Until Pinb.3 = 0
'Purple:
Do
Portb.4 = 1
Portb.1 = 0
Portb.0 = 1
Wait Wtime
Loop Until Pinb.3 = 0
Loop
Внимание вопрос (в порядке приоритетности):
1. Что добавить/изменить чтобы при включении запоминался номер позиции - цвет, на котором остановились?
2. Сейчас стоит пауза после нажания кнопки чтобы цвета не менялись с космической скоростью. Как установить разовое срабатывание от нажатия кнопки независимо от длительности удержания?
Заранее большое спасибо за подсказки!
Только вот задержка в 1 секунду, как мне кажется, многовато.