Регистри TIMSK и TIFR

TOIE1OCIE1AOCIE1B-TICIE1-TOIE0-

Ориз. 3.3. Структура на регистъра TIMSK на AVR микроконтролери

TOV1OCF1AOCF1B-ICF1-TOV0-

Ориз. 3.4. Структурата на регистъра TIFR на AVR микроконтролери

Когато битът TOIE1 и битът I в регистъра на състоянието SREG са настроени на логика. 1, тогава прекъсването при препълване на T/C1 е разрешено. В случай на препълване флагът TOV1 се задава в регистъра TIFR.

Ако битът OCIE1A и битът I в регистъра на състоянието SREG са настроени на логика. 1, тогава прекъсването е разрешено, ако съдържанието на регистъра за сравнение A съответства на текущото състояние на T/C1. Ако има съвпадение, флагът OCF1 A се задава в регистъра TIFR.

Ако битът OCIE1B и битът I в регистъра на състоянието на SREG са настроени на логика. 1, тогава прекъсването е разрешено, ако съдържанието на регистъра за сравнение B съответства на текущото състояние на T/C1. Ако има съвпадение, TIFR флагът се задава на OCF1B.

Ако битът TICIE1 и битът I в регистъра на състоянието на SREG са настроени на логика. 1, прекъсването е разрешено, когато е изпълнено условието за улавяне. Когато възникне тригер за улавяне, флагът ICF1 се задава в регистъра TIFR.

Ако битът TOIE0 и битът I в регистъра на състоянието SREG са настроени на логика. 1, прекъсването на препълването на таймера/брояча на T/CO е разрешено. В този случай флагът TOV0 е зададен в регистъра TIFR.

Инсталация в дневника. 1 на един от флаговете в регистъра TIFR води до разклонение на съответния вектор на прекъсване. При влизане в рутинната процедура за обработка на прекъсвания, флагът в регистъра TIFR се нулира от хардуера към дневника. 0.

Нулиране

Налични са следните опции за нулиране:

нулиране при включване;

външно нулиране - сигналът за нулиране се изпраща към съответния изход на микроконтролера;

нулиране от таймера за наблюдение - микроконтролерът се нулира след изтичане на времето, зададено от таймера за наблюдение, ако този таймер е бил активиран.

Режими на заспиване на процесора

Микроконтролерите AVR позволяват да се появи режим на "заспиване", когато генераторът на часовник е временно деактивиран. В този режим консумацията на енергия е сведена до минимум и се излиза от него при получаване на заявка за прекъсване.

Преходът към режим "заспиване" се осъществява от командата за заспиване. В случай на AVR микроконтролери, това трябва да бъде предварително зададено на дневника. 1 SE бит (бит 5) от контролния регистър MCUCR.

За микроконтролерите AVR може да се избере един от двата режима на "заспиване":

В режим на неактивност процесорът е спрян, но таймерът/броячът, таймерът за наблюдение, системата за прекъсване и часовник остават активни. Благодарение на това процесорът може да се върне към нормална работа с помощта на таймер за наблюдение, таймер/брояч или външно прекъсване.

В режим на изключване, системният осцилатор (и следователно целият микроконтролер) е в забранено състояние. В този режим вътрешният RC осцилатор може да стартира само таймера за наблюдение със собствен часовник. Активен таймер за наблюдение нулира микроконтролера отново след изтичане на времето за забавяне. Ако таймерът за наблюдение също е деактивиран, тогава само външен сигнал за нулиране или външно прекъсване може да го нулира.

Избор на един от режимите "заспиване" вМикроконтролерите AVR се управляват от бита SM (бит 4) на контролния регистър MCUCR. Ако битът SM е настроен на log. 1, тогава микроконтролерът се поставя в режим на ниска мощност чрез последващата команда за заспиване, ако SM битът се нулира към дневника. 0, тогава следващият микроконтролер се поставя в режим на готовност, ако битът SE е бил предварително зададен в регистъра MCUCR.