‮Сдвиг по фазе (kincajou) wrote,
‮Сдвиг по фазе
kincajou

Async timer, problem solved.

Да, вся магия заключалась в том, чтобы дождаться окончания переноса данных из "теневых" регистров в таймер. Я не стал мудрить и написал макрос-враппер, коий дожидается освобождения регистра, пишет данные, дожидается успешного завершения. Попутно выяснилось, что в режиме Clear-Timer-on-Compare (CTC) прерывание "Output Compare" срабатывает ДВАЖДЫ. Видимо, первый раз, когда таймер дощёлкал до переполнения, а второй раз, когда перевалил за него (плюс небольшой оверхед). Я сделал так, чтобы обработчик прерывания дожидался следующего щелчка (глядя во всё тот же регистр с флагами "асинхронной готовности"), и сразу всё наладилось.

Итого - плата работает, но потребляет всего 1.1 мА.

Всё равно много. Такого не должно быть. Дело в том, что часть схемы запитывается от дежурного источника, и именно за это потребление надо побороться; остальное запитывается от мощного понижатора и там уже можно не бояться. Вероятно, где-то между двумя доменами питания сидит резистивная подтяжка и через неё, похоже, "сифонит".

Впрочем, 1.1 мА это примерно на порядок меньше тока саморазряда Батарейки... можно и так оставить.
Tags: приключения Электроника
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments