Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Контроллер на атмега 16

Пт июн 23, 2017 22:47:35

Доброго времени суток!
В планах спаять устройство на меге 16,к которой будет подключено три источника импульсов,4 кнопки управления меню и дисплей. Я так понимаю,что импульсы должны обрабатываться по прерываниям,ну и кнопки тоже...в итоге 7 векторов...на какие вектора можно все это развесить?

Re: Контроллер на атмега 16

Сб июн 24, 2017 08:22:48

Да нет, всё гораздо проще. Я не знаю, как там в Меге устроено (никогда ею не пользовался), но в общем:
- кнопки могут опрашиваться с некоторой периодичностью (20-50 мс) по таймеру, банально чтением состояния выводов
- импульсы... а что за импульсы? какие они - прямоугольные логического уровня или какие-нибудь синусоидоподобные аналоговых уровней? периодичность, длительность импульсов? в одном случае это будет прерывание от внешнего источника, в другом случае что-то типа компаратора или АЦП
- дисплей... тут уж вообще как угодно

С векторами тоже все просто - открываем даташит на Мегу, ищем раздел по прерываниям от внешних источников и читаем его.

Re: Контроллер на атмега 16

Сб июн 24, 2017 08:31:34

Импульсы я так полагаю прямоуголные,они исходят с импульсных выводов счетчика электроэнергии...сам не замерял...а по таймеру опрос не прозевает нажатие?

Re: Контроллер на атмега 16

Сб июн 24, 2017 08:53:33

Обычно нет. Вы же не будете нажимать кнопку со скоростью автомата Калашникова. Средняя длительность удержания кнопки в нажатом положении - 100 мс, плюс-минус 50 мс. Посему, с периодичностью опроса порядка 20 мс вы успеете несколько раз зафиксировать нажатую кнопку. Повторное нажатие кнопки происходит еще дольше - вплоть до 300 мс после отпускания.
А в пределах длительности 0-10 мс после нажатия происходит "дребезг" контактов кнопки, выражающийся в нестабильном состоянии на выходе. Именно поэтому использование напрямую прерывания от кнопки будет приводить к совсем непонятным вещам в виде многократных фиксаций нажатия. Обычно, после первого прерывания устанавливается dead-time, то есть, задержка времени, в течение которой прерывание запрещено.

Счетный выход электросчетчика может быть разного типа, но в основном это опторазвязанный, через оптопару, то есть, на выход он никакого напряжения не выдает, действует подобно механическому реле. Параметры импульса описаны в документах на счетчик.

Re: Контроллер на атмега 16

Сб июн 24, 2017 11:51:53

Счетный выход электросчетчика может быть разного типа, но в основном это опторазвязанный, через оптопару, то есть, на выход он никакого напряжения не выдает, действует подобно механическому реле. Параметры импульса описаны в документах на счетчик.

ну с этим думаю проблем не будет...если сухой контакт там, значит подадим питание с контроллера. Нет так, будем приручать и это....
Вот мне одно не понятно благо на меге 16 есть 3 внешних прерывания, а чт делать если мне нужно 5,10,15....

Re: Контроллер на атмега 16

Сб июн 24, 2017 11:58:10

Зачем Вам внешние прерывания ? Уже же сказали выше, как можно обрабатывать кнопки.
Почитайте - viewtopic.php?f=61&t=79801 , там есть примеры реализации.

Re: Контроллер на атмега 16

Сб июн 24, 2017 14:17:31

...
Вот мне одно не понятно благо на меге 16 есть 3 внешних прерывания, а чт делать если мне нужно 5,10,15....


Ежли очень хошетси из одного аппаратного входа прерывания сделать много...
сооруди дополнительный контроллер обработки прерываний с выдачей на МК сигнала запроса и вектора прерывания его вызвавшего.
Вроде как в стары времена такой функционал КР580ВН59 выполняла... буржуинский аналог I8259...
8)

Re: Контроллер на атмега 16

Пн июн 26, 2017 21:12:35

да Вы правы, вставил в цикл программы опрос кнопок, работает без проблем...никаких прерываний и не нужно.спасибо!
Ответить