1:; Зміна напрямку зміни яскравості на протилежне.
mov Temp, rBit1rBit1, 1 <
TurnCh1On:
sbr rBit1, (1 <
clr rBrightnessCh1; Яскравість збільшується, починаючи з нуля.
rjmp Channel2ProcessingOff: reSystemBits, ebOwnersAtHome; У режимі ІПХOwnersAtHomeNotSetCh1rBit1, (1 <
rjmp GoOutCh1
IsChannel1On:; Дана процедура дозволяє виконувати дії, що вимагають включеного
sbrs rBit1, bIsChannel1On; стану каналу при неактивному стані плавного включення/вимикання.
rjmp Channel2Processing
sbrc reSystemBits, ebOwnersAtHome; Режим ИПХ не вимагає виконання наступних команд
rjmp GoOutCh1; (запам'ятовування яскравості і режим автоматичного вимкнення).
lds Temp, mSaveBrightDelayCh1
dec Temp; Декремент таймера запам'ятовування яскравості.
sts mSaveBrightDelayCh1, Temp
brne ExitSaveBrightDelayCh1; Як тільки закінчиться час таймаута (2,5 сек.), поточна яскравість поточного режиму буде запам'ятати в eeprom.
sbrc rBit1, bTurnOffStartedCh1; Але якщо канал перебуває у стані автоматичного вимкнення,
rjmp ExitSaveBrightDelayCh1; яскравість не запам'ятовується.
sbrc reSystemBits, ebChannel1Mode
rjmp SaveBrightnessMode2Ch1
sbrc reUserBits2, ebSaveBrightM1Ch1; Також яскравість не запам'ятовується
sts meLastBright1_1, rBrightnessCh1
rjmp ExitSaveBrightDelayCh1; якщо це було заборонено користувачем.
SaveBrightnessMode2Ch1: reUserBits2, ebSaveBrightM2Ch1meLastBright1_2, rBrightnessCh11:
rcall TurnOffTimeoutCh1; Через малого допустимого зміщення команд типу brne (максимум 64 байта) доводиться використовувати виклик підпрограми.
GoOutCh1: ZH, HIGH (2 * BrightnessTable) ZL, LOW (2 * BrightnessTable) ZL, rBrightnessCh1; Значення регістра rBrightness задає величину зміщення Temp, 0; в таблиці яск...