AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
17.04.2018, 11:19
|
|
Временная регистрация
Регистрация: 04.02.2013
Сообщений: 78
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Подсчет оборотов двигателя
Добрый день! Мне нужно знать и контролировать обороты двигателя. Для этого я установил на вал двигателя диск с одной прорезью и поставил оптопару IA05 Sharp. Выход оптопары подключил к ICP1 atmega32. Для подсчета длительности вращения использую таймер 1
void InitTimer1(void){
TIMSK |= (1‹‹TICIE1); // разрешение прерывания по событию захват
TCCR1A= (0‹‹WGM11)|(0‹‹WGM10); // работы таймера – Normal
TCCR1B= (0‹ICNC1)|(1‹‹ICES1) // схема подавления помех выключена, активный фронт нарастающий
|(0‹‹WGM13)|(0‹‹WGM12) // работы таймера – Normal
|(0‹‹CS12)|(1‹‹CS11)|(0‹‹CS10); // предделитель 1024
TCNT1 = 0; // счетный регистр
}
// Счетчик оборотов мотора============================================ =====
ISR (TIMER1_CAPT_vect){
TCNT1 = 0; //обнуляем счетный регистр
buf = (uint32_t)ICR1; //сохраняем значение регистра захвата в буфере
}
//================================================== ===
При максимальных оборотах счетчик таймера 1 должен показыват минимальное значение, а при минимальных оборотах - максимальное. На практике все наоборот. При минимальных значениях - минимальные показания счетчика, при максимальных - максимальные. Строил модель в протеусе. Перевел обороты в частоту и задавал генератором. В протеусе все работает. Где закралась ошибка
|
|
|
|
17.04.2018, 11:54
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,792
Сказал спасибо: 2,912
Сказали Спасибо 3,120 раз(а) в 2,111 сообщении(ях)
|
Re: Подсчет оборотов двигателя
Переполнение таймера?
__________________
Экзорцист 40-го уровня.
|
|
|
Сказали "Спасибо" ForcePoint
|
|
|
07.05.2018, 11:37
|
|
Временная регистрация
Регистрация: 04.02.2013
Сообщений: 78
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Подсчет оборотов двигателя
Разобрался. Спасибо!!!
|
|
|
|
07.05.2018, 15:40
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
|
Re: Подсчет оборотов двигателя
ua3rad, таки стоит немного времени потратить на описание достигнутого - кому-то ещё может помочь .
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
07.05.2018, 15:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,568
Сказал спасибо: 5,042
Сказали Спасибо 10,611 раз(а) в 3,604 сообщении(ях)
|
Re: Подсчет оборотов двигателя
Направление счета было выбрано неправильно?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:04.
|
|