нужна помощь для простого низкоскоростного частотомера
Добавлено: Пт янв 07, 2011 15:39:14
Сразу хочу предупредить, что в программировании МК - я полный ноль (надеюсь, что только пока), всю обучалку я сделал на ATtiny, но мозгов для самостоятельной работы пока нету. Поэтому и прошу помощи.
В общем, хочу сделать что-то вроде частотомера/тахометра низкочастотного, т.е. интересуют частоты импульсов до 50Гц. Что я имею в виду. На входе мы имеем на двух каналах импульсы с амплитудой около 5 В, и частотой 0-50Гц. Нужно по достижению определенных частот зажигать в определенном порядке по три диода на канал. К примеру, достигла частота от 1 до 10Гц - зажечь один светодиод, от 10 до 15 Гц - другой, от 15 до 23 - первый и второй диод... ну и так далее.
Примерно я понимаю, как сделать такой алгоритм, и на дельфи я аналог писал - там просто:
я завел счетчик в который пишу когда импульс пришел - и по таймеру я сравниваю с теми числами, которые нас интересуют, зажигаю нужные светики и обнуляю счетчик.
Здесь я так понимаю, что надо делать то же самое. В наличии есть атмеговский микроконтроллер 90S2313. Помогите реализовать алгоритм.
В общем, хочу сделать что-то вроде частотомера/тахометра низкочастотного, т.е. интересуют частоты импульсов до 50Гц. Что я имею в виду. На входе мы имеем на двух каналах импульсы с амплитудой около 5 В, и частотой 0-50Гц. Нужно по достижению определенных частот зажигать в определенном порядке по три диода на канал. К примеру, достигла частота от 1 до 10Гц - зажечь один светодиод, от 10 до 15 Гц - другой, от 15 до 23 - первый и второй диод... ну и так далее.
Примерно я понимаю, как сделать такой алгоритм, и на дельфи я аналог писал - там просто:
я завел счетчик в который пишу когда импульс пришел - и по таймеру я сравниваю с теми числами, которые нас интересуют, зажигаю нужные светики и обнуляю счетчик.
Код: Выделить всё
case lcounter of
1 .. 10:
begin
lColor := 1
end;
10 .. 15:
begin
lColor := 2
end;
15 .. 23:
begin
lColor := 1+2;
end;