peedCh1Temp, mBrightMaxCounterCh1TempBrightMaxTimeoutIsUpCh1mBrightMaxCounterCh1, TempGoOutCh1: Temp, meMaxBrightDelayCh1mBrightMaxCounterCh1, TemprBit1, 1 <
cpi rButton1HoldTime, 255; Якщо лічильник тривалості утримування кнопки містить спеціальне значення (255),
brne PC +2; покликане блокувати обробку стану кнопки поки вона не буде віджата,
ldi rButton1HoldTime, 0; потрібно зняти цю блокування шляхом обнулення лічильника, і вийти з процедури.
cpi rButton1HoldTime, 0; Якщо лічильник спочатку дорівнював нулю,
breq IsChannel1On; значить контроль не натискали.
cpi rButton1HoldTime, cButtonOnHoldSense; Якщо лічильник не дорівнює нулю (тобто кнопка щойно була віджата),
ldi rButton1HoldTime, 0; то скинути його (команду clr тут застосовувати не можна, тому що вона впливає на прапори SREG),
breq HoldButton1; і виконати дії, відповідні відпускання кнопки після її натискання
ClickButton1:; або утримування.
sbrc rBit1, bIsChannel1On; Якщо канал включений (bIsChannel1On = 0)
rjmp TurnCh1Off; значить треба його вимкнути.
cbr reSystemBits, (1 < HoldButton1:; Якщо було натискання кнопки,
lds Temp, meMinBrightDelayCh1; то треба скинути
sts mBrightMinCounterCh1, Temp; лічильник часу утримання мінімальної яскравості на початкове значення.
lds Temp, meMaxBrightDelayCh1; Те ж для
sts mBrightMaxCounterCh1, Temp; лічильника часу утримання максимальної яскравості.
sbrc reUserBits1, ebBrightDirModeCh1; При ebBrightDirModeCh1 = 1 відбувається
rjmp InvertBrightVectorCh1; зміна напрямку зміни яскравості, щоб при наступному натисканні кнопки яскравість змінювалася в протилежну сторону.
lds Temp, meBrightnessMinCh1; При ebBrightDirModeCh1 = 0 rBrightnessCh1, Temp; напрямок зміни яскравості зміниться на протилежне тільки в тому випадку,
breq InvertBrightVectorCh1; якщо в момент відпускання кнопки яскравість перебувала на мінімальному
lds Temp, meBrightnessMaxCh1; або максимальному значенні. Це потрібно для того щоб
cp rBrightnessCh1, Temp; виключити затримку зміни крайнього значення яскравості
breq InvertBrightVectorCh1; при наступному натисканні кнопки.
rjmp IsChannel1On
InvertBrightVectorCh...