Разбудить Таймер При Смене Лог. Уровня.

3-09-2013, 14:16 От: admin Посмотрели: 624
Есть аттини2313. Задача такая, что пока на ноге INT0 есть 0, нужно 1 раз вызвать функцию, и потом ждать пока 0 не сменится на 1 и опять на 0.

Всё бы было просто, но я решил усыпить МК когда он не работает и тут возникла беда...



Вариант 1.

Если я включаю прерывание по низкому уровню, то низкий уровень на INT0 без проблем будет МК.

Но пока там низкий уровень, прерывание постоянно вызывается.

Выход: убрать флаг прерывания пока работает функция.

В конце функции я опять ставлю флаг прерывания, но если низкий уровень остался на ножке МК, то прерывание опять срабатывает.



Вариант 2.

Включаю прерывание по заднему фронту, и всё вроде бы работает, если убрать sleep. Но если усыпить МК, то он не просыпается от прерывания. (я так понимаю беда в том, что тактовый генератор остановился, а измерение должно быть во время выполнения каких либо команд МК, то етсь пока тактовый генератор работает...)



Как можно решить данную задачу?
Раздел: AVR

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться, либо войти на сайт под своим именем.

Обсудить на форуме


На момент добавления Разбудить Таймер При Смене Лог. Уровня. все ссылки были рабочие.
Все публикации статей, книг и журналов, представлены на этом сайте, исключительно для ознакомления,
авторские права на эти публикации принадлежат авторам статей, книг и издательствам журналов!
Подробно тут | Жалоба
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Опрос

Ваши предпочтения в TRX


Одинарное преобразование
Двойное преобразование
Прямое преобразование
SDR
Другое
Мне всё равно

Популярные новости
Календарь новостей
«    Май 2024    »
ПнВтСрЧтПтСбВс
 12345
6789101112
13141516171819
20212223242526
2728293031