1); Якщо випадкова тривалість перевищує (cMaxDurationRndOAH + 1) (240 хвилин),
brlo PC +2
ldi Temp, cMaxDurationOAH; вона замінюється на cMaxDurationRndOAH.
; ldi Temp, 4; заглушка режиму випадкового вибору тривалості включеного стану функції ИПХ
rjmp OwnersAtHomeSharedCellWrite; Після цього відбувається запис тривалості у відповідну комірку пам'яті.
OwnersAtHomeToOffState:
lds Temp, meOwnersAtHomeOffPeriod;
sbrs reUserBits1, ebRandomOAH; Якщо режим випадкового вибору яскравості тривалостей у функції ИПХ включений,
rjmp OwnersAtHomeSetOffState
rcall RandomNumber8bit; відбувається вибір випадкового значення тривалості вимкненого стану.
cpi Temp, (cMaxDurationOAH + 1); Якщо випадкова тривалість перевищує (cMaxDurationRndOAH + 1) (240 хвилин),
brlo PC +2
ldi Temp, cMaxDurationOAH; вона замінюється на cMaxDurationRndOAH.
; ldi Temp, 4; заглушка режиму випадкового вибору тривалості вимкненого стану функції ИПХ
OwnersAtHomeSetOffState:
cbr rBit1, (1 <
sbr rBit1, (1 <
OwnersAtHomeSharedCellWrite:
sts mOwnersAtHomeSharedCell, Temp; Запис тривалості включеного або вимкненого стану в клітинку оперативної пам'яті.
ExitOwnersAtHome:
; ****************** Обробка першого каналу ******************** ******** Processing: rBit1, bSoftTurnCh1; Якщо біт встановлено, значить треба виконати
rjmp CheckButton1; включення або виключення каналу.
sbrs rBit1, bIsChannel1On; Якщо канал включений,
rjmp SoftTurnOffCh1; відбувається його плавне виключення.
lds Temp, meOwnersAtHomeBright; При включенні каналу в режимі ИПХ,
sbrc reSystemBits, ebOwnersAtHome
rjmp CompareBrightnessCh1
lds Temp, meLastBright1_1; а також у звичайному першому
sbrc reSystemBits, ebChannel1ModeTemp, meLastBright1_2; або другому режіме1:
cp Temp, rBrightnessCh1; відбувається плавне наростання яскравості до тих пір,
brne SoftTurnOnCh1; поки її поточне значення не зрівняли із заданим (для режиму ИПХ) або попереднім (для першого або другого режиму).
SoftTurnOnCh1Completed:
cbr rBit1, 1 <