Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Сделать счетчик импульсов за секунду atmega16 на СИ

Андрей С Ученик (82), закрыт 4 года назад
Задача состоит в подсчете на СИ числа импульсов поступающих на ножку МК с помощью Timer/Counter0 и Timer/Counter1 за 1 секунду. Один таймер ведет счет импульсов, другой отсчитывает 1 секунду.
IDE Atmel studio.
Лучший ответ
Aljebro Просветленный (27088) 4 года назад
>> Один таймер ведет счет импульсов
Серьезно? А как он умудряется это делать?

Вот пример таймера на 1 секунду
http://narodstream.ru/avr-urok-10-tajmery-schetchiki-preryvaniya/
Если нужна точность, использовать часовой кварц (смысл в том, что его частота - степени двойки, поэтому переполнение в число секунд / целое N)

А считать импульсы в прерываниях по фронту
http://mainloop.ru/avr-atmega/avr-external-interrupt.html
Андрей СУченик (82) 4 года назад
Подкорректируйте пожалуйста
https://pastebin.com/jHTnuW9w
Aljebro Просветленный (27088) Глупость. if (PINB & (1 << PINB0) ) { //если есть импульсы на PB0 то считаем их TCNT1++; //вывод числа на lcd } Это таймер TCNT1++; а не счетчик импульсов. Для счетчика переменную заведи: uint32_t x = 0; Нет второй функции обработчика прерывания импульсов, в которой только x++;
Остальные ответы
Похожие вопросы