зберігає значення, яке має бути перезавантажена в TL0 щоразу, по переповнення. Таймер працює від внутрішнього джерела сигналів синхронізації, инкрементируется на кожен дванадцятий такт. C/T2 - 16-тіразрядний автоперезагружаемий лічильник, працює в режимі синхронізації послідовного передавача. p> C/T0 використовується для калібрування шпаруватості імпульсів, що беруть участь у генерації змінної напруги від постійного джерела. Шпаруватість сигналу - є відношення періоду сигналу до його довжини. Таким чином, регулюючи довжину імпульсу можна домогтися необхідного значення величини діючої напруги. p> Після включення пристрою через дільник напруги, на вхід мікроконтролера AVDD і на вхід схеми генерації одиночного імпульсу RESET подається харчування. Після закінчення сигналу RESET мікропроцесор починає вибірку команд з пам'яті. Спочатку, виконуються команди ініціалізації режимів таймерів, асинхронного прийомопередавача, портів АЦП, портів введення виводу і глобальних змінних. Знімається заборона на переривання. p> Далі починається нескінченний цикл, в якому здійснюється управління пристроєм.
1) Дозволяємо переривання від АЦП. Встановлюємо АЦП в режим одноразового перетворення напруги на каналі 0 (U вх. ). Чекаємо, доки перетворення не завершилося. Як тільки перетворення завершено, програма передає управління обробникові переривання від АЦП (див. нижче). У нутрії обробника переривання від АЦП забороняються.
2) Після обробки переривання знову дозволяємо переривання від АЦП. Встановлюємо АЦП в режим одноразового перетворення напруги на каналі 2 (напруга на акумуляторі). Чекаємо, доки перетворення не завершилося. Як тільки перетворення завершено, програма передає управління обробникові переривання від АЦП.
) Перевіряємо, чи працює таймер 0. Якщо ні, переходимо на пункт 1.
) Таймер працює, отже, харчування йде від резервного джерела. Після обробки останнього переривання, переривання від АЦП залишається забороненим, а дозволено воно може бути тільки в обробнику переривання від таймера 0 після закінчення 0,02 с, тобто одного періоду змінної напруги живлення (f = 50 Гц). Дочекаємося дозволу переривання. Це зроблено для того, щоб довжина імпульсу (яка калибруется в обробнику переривання від АЦП) не змінювався частіше, ніж раз на період. Встановлюємо АЦП в режим одноразового перетворення напруги на каналі 1 (U вих. ).
) Чекаємо, доки перетворення не завершилося. Як тільки перетворення завершено, програма передає управління обробникові переривання від АЦП. Після повернення з переривання, переходимо до пункту 1.
Контроль...