Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Atmega8535 счётчик импульсов
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
AndriyK
Подскажите пожалуйста, как решить следующую проблему:
нужно подсчитывать независимо друг от друга импульсы(высокий уровень, низкий уровень), которые приходят на PD0 и PD1 (максимум 9900 импульсов на каждый канал).
В какую сторону глядеть? Использовать встроенный таймер(тогда какой из них), но ведь это контакты для USART, или опрашивать порт, но тогда ведь можно не заметить.
Может я в чем-то не прав или не понимаю, тогда объясните, скажите где почитать.
Спасибо.
Marian
Подавайте ваши импульсы на INT0 и на INT1
Это позволит вызывать прерывания.
В прерывании увеличивайте значение переменной, в которой будите хранить количевство принятых импульсов.

О работе с прерываниями и почитайте в любой книжке по проце.
fars
Я тоже за прерывания. Указываешь по какому условию INT0 и на INT1 должно выдавать прерывание и пишеш две функции-обработчики в каторых инкрементируешь две переменные.

(П.С. Частота импульсов должна быть меньшей чем частота АВКки, что бы небыло стробоскопирования)
demiurg_spb
Прерывания это хорошо, но есть способ лучше!
Используйте таймер (или два) в режиме счетчика- так вообще почти никакой нагрузки на ядро не будет.
defunct
Частота у вас не высока, так что ничто не мешает запустить таймер с частотой в ~40Khz, и по прерыванию таймера читать порт, и фильтровать импульсы.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.