sbiw ZH: ZL, 1; Якщо число вимірювань АЦП досягло максимально допустимого значення,
breq ADCExit; процедура переривається.
in Temp, ADCH; Інакше проводиться чергове вимірювання напруги. У розрахунок приймаються тільки старші 8 біт АЦП. p align="justify"> rjmp ADCSampling
ADCExit:
cbr rOutChannels, (1 <
out pMainOut, rOutChannels; досягненні максимально допустимого числа вимірів.
clr rCh1OffTime
clr rCh2OffTime
; ****************** Виконання загальних процедур для обох каналів ***************** **
sbrs reSystemBits, ebOwnersAtHome; При включеному режимі Імітація Присутності Господарів (ИПХ)
rjmp Channel1Processing
lds Temp, mOwnersAtHomeSeconds; кожні 10мс відбувається декремент лічильника цього режиму.
dec TempmOwnersAtHomeSeconds, TempExitOwnersAtHome Temp, 100
; ldi Temp, 5; зменшення таймаута для прискорення тестування
sts mOwnersAtHomeSeconds, TempTemp, mOwnersAtHomeMinutesTempmOwnersAtHomeMinutes, TempExitOwnersAtHomeTemp, 60mOwnersAtHomeMinutes, TempTemp, mOwnersAtHomeSharedCellTempmOwnersAtHomeSharedCell, TempExitOwnersAtHome; Як тільки лічильник відрахує заданий інтервал, rBit1, bIsChannel1On; відбувається включення, OwnersAtHomeToOffState; або вимкнення обох каналів, rBit1, (1 < ;
lds Temp, meOwnersAtHomeOnPeriod; Якщо режим випадкового вибору значень функції ИПХ не вибрано,
sbrs reUserBits1, ebRandomOAH
rjmp OwnersAtHomeSharedCellWrite; то таймер буде відраховувати заздалегідь задане значення тривалості включеного стану.
rcall RandomNumber8bit; Якщо обраний, то формується випадкове значення яскравості.
cpi Temp, cMinBrightOAH; Якщо випадкова яскравість виявляється менше cMinBrightOAH (приблизно 25% від максимальної яскравості),
brsh PC +2
ldi Temp, cMinBrightOAH; вона стає рівною cMinBrightOAH.
; ldi Temp, 150; заглушка режиму випадкового вибору яскравості функції ИПХ, що дозволяє задати необхідну яскравість
sts meOwnersAtHomeBright, Temp
rcall RandomNumber8bit; Потім формується випадкове значення тривалості роботи у включеному стані.
cpi Temp, (cMaxDurationOAH + ...