Счетчик количества импульсов за единицу времени
Счетчик количества импульсов за единицу времени
Нужно сделать счетчик количества импульсов за единицу времени на ATMega8.
Сабж нужен для того, чтоб считать количество импульсов появляющихся на контакте прерывателя автомобиля с контактной системой зажигания для определение скорости вращения коленчатого вала.
Помогите мне пожалуйста. Лучше б конечно кодом на С, а если еще и для CodeVision, то вообще было б классно.
Сабж нужен для того, чтоб считать количество импульсов появляющихся на контакте прерывателя автомобиля с контактной системой зажигания для определение скорости вращения коленчатого вала.
Помогите мне пожалуйста. Лучше б конечно кодом на С, а если еще и для CodeVision, то вообще было б классно.
- Реклама
- avr123.nm.ru
- Вечно гонимый
- Сообщения: 331
- Зарегистрирован: Пн сен 04, 2006 20:25:28
- Откуда: самоучитель по микроконтроллерам
- Контактная информация:
Re: Счетчик количества импульсов за единицу времени
либо поиском google.com поищите готовые, либо админа спросите есть курс как раз на CVAVR, либо топик "с чего начать програмить" посмотрите.ostrige писал(а):Нужно сделать счетчик количества импульсов за единицу времени на ATMega8.
Лучше б конечно кодом на С, а если еще и для CodeVision, то вообще было б классно.
Имхо - прекрасная задача для обучения!
примеры прерываний как раз под вашу задачу на странице 3 курса.
- teoretic
- Открыл глаза
- Сообщения: 50
- Зарегистрирован: Чт июн 15, 2006 23:46:55
- Откуда: Раша, Москоу
- Контактная информация:
где-то на сайте(кажется с котом....или нет...может на электронике...) был проект - определение частоты вращения ДВС для модели самолета - смотри и рыдай. даже индикатор есть.
если хочется сделать с нуля, то наиболее НАДЕЖНЫЙ способ - сделать таймер, который будет считать время и подцепить копыто аналогового компаратора на вывод катушки зажигания (другое копыто - на делитель напряжения), и считать перепады. этим гарантируется то, что даже при "неправильном"(ну например мммммедленном) перепаде напряжения не случится ужас в железной логике контроллера(а 2.5В на пару десятков тактов могут ввести железо в ступор, особенно D триггеры
. до самовозгорания), да и rc фильтр не помешал-бы.
в принципе можно повесить вывод на копыто прерывания, но с этим сложнее ибо надо развязывать, стабилизировать.... вобщем делать из 9....16В что-то около 5В+-10%....а оно надо?
чтобы исключить разные проблеммы с помехами и утечкой тока не туда, куда надо - лучше сделать развязку - либо приделать собственный трансформатор, либо оптопару (последнее предпочтительнее ибо оно, пожалуй, будет не сильно обижаться на повышенное напряжение и позволит обойтись без аналогового компаратора)
так как все это бред и домыслы ни разу не спаявшего сие изделие человека, прошу воспринимать это как намек на возможный вариант
если хочется сделать с нуля, то наиболее НАДЕЖНЫЙ способ - сделать таймер, который будет считать время и подцепить копыто аналогового компаратора на вывод катушки зажигания (другое копыто - на делитель напряжения), и считать перепады. этим гарантируется то, что даже при "неправильном"(ну например мммммедленном) перепаде напряжения не случится ужас в железной логике контроллера(а 2.5В на пару десятков тактов могут ввести железо в ступор, особенно D триггеры
в принципе можно повесить вывод на копыто прерывания, но с этим сложнее ибо надо развязывать, стабилизировать.... вобщем делать из 9....16В что-то около 5В+-10%....а оно надо?
чтобы исключить разные проблеммы с помехами и утечкой тока не туда, куда надо - лучше сделать развязку - либо приделать собственный трансформатор, либо оптопару (последнее предпочтительнее ибо оно, пожалуй, будет не сильно обижаться на повышенное напряжение и позволит обойтись без аналогового компаратора)
так как все это бред и домыслы ни разу не спаявшего сие изделие человека, прошу воспринимать это как намек на возможный вариант
-
Гость
- Реклама
-
Незнайка
- Первый раз сказал Мяу!
- Сообщения: 31
- Зарегистрирован: Чт сен 07, 2006 04:55:41
- Откуда: Омск
Я делал нечто похожее, только импульсы считались для форсунки. Зная сколько форсунка выплевывает за минуту можно было считать расходы топлива и т.д. вобщем это не важно. У меня есть наброски кода, но они дома, а я на работе, вечером постараюсь прикрепить.
Кто не делает ошибок тот обычно вообще ничего не делает.
- Max
- Админ
- Сообщения: 10815
- Зарегистрирован: Вт авг 23, 2005 15:23:25
- Откуда: Москва
- Контактная информация:
Вот тут смотрите:
http://radiokot.ru/circuit/digital/measure/03/
http://radiokot.ru/circuit/digital/measure/03/
А вот футболки кому? Кружки, значки!
Мысли Пачкают Мозги
Мысли Пачкают Мозги
- dx40
- Нашел транзистор. Понюхал.
- Сообщения: 182
- Зарегистрирован: Вт июл 11, 2006 12:39:16
- Откуда: Москва
- Контактная информация:
Вот программа простейшего частотомера, выводит частоту сточностью до 10 Гц на символьный ЖКИ.
unsigned int cp,lp;
unsigned char p;
// прерывание по переполнению таймера 0
// Таймер 0 работает в режиме счетчика, соответственно на его вход и надо подавать импульсы
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{ cp++; }
// Таймер 1 работает как таймер, при переполнении начинает считать заново
// От значения B до значения A проходит ровно 0.1с
// Совпадение A - сохранение результатов счета
interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
p=TCNT0;
lp=cp;
}
// Совпадение B - обнуление
interrupt [TIM1_COMPB] void timer1_compb_isr(void)
{
TCNT0=0;
cp=0;
}
Программа не 100% правильная (иногда подглючивает) но простая и работоспособная.
unsigned int cp,lp;
unsigned char p;
// прерывание по переполнению таймера 0
// Таймер 0 работает в режиме счетчика, соответственно на его вход и надо подавать импульсы
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{ cp++; }
// Таймер 1 работает как таймер, при переполнении начинает считать заново
// От значения B до значения A проходит ровно 0.1с
// Совпадение A - сохранение результатов счета
interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
p=TCNT0;
lp=cp;
}
// Совпадение B - обнуление
interrupt [TIM1_COMPB] void timer1_compb_isr(void)
{
TCNT0=0;
cp=0;
}
Программа не 100% правильная (иногда подглючивает) но простая и работоспособная.
- Вложения
-
- count.rar
- Частометр на тиньке2313 10Гц-10МГц
- (23.46 КБ) 671 скачивание
Не получилось тогда, закинул по нехватке времени
Вот решил вернуться к поставленой задаче.
Посмотрите пожалуйста, что я не так делаю. В ПРОТЕУСе симулировал, на вывод внешнего прерывания подавал сигнал с генератора пульсов, и ни в какую...
Вот решил вернуться к поставленой задаче.
Посмотрите пожалуйста, что я не так делаю. В ПРОТЕУСе симулировал, на вывод внешнего прерывания подавал сигнал с генератора пульсов, и ни в какую...
- Вложения
-
- taxo4.rar
- (36.99 КБ) 366 скачиваний
жаль что нужен СИ. У меня есть на асме готовый тахометр, определяет частоту по двум импульсам значение частоты выдаётся мгновенно (задержка для глаз может варьироваться)
- Вложения
-
- P9280057.JPG
- (40.85 КБ) 885 скачиваний


