Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Индикатор оборотов кулера на ATmega8

Отправлено BATCOH 20 мая 2007 г. 19:22


День добрый!
Делаю индикатор оборотов.
Сигнал с таходатчика кулера подаю на ногу внешнего прерывания INT1
т.е. PD3. Делаю этот вход с подтяжкой.
В программе инициализирую таймер1 на частоте 1МГц.(как и внутренняя синхронизация). Обработчик прерывания в CV_AVR пишу так

interrupt [EXT_INT1] void ext_int1_isr(void)
{

unsigned int current_time, T;
current_time = (256* ICR1H) + ICR1L;
if(current_time>pre_time)T = current_time - pre_time;
else T = 0xFFFF - current_time + pre_time;
sprintf(buffer,"%06u rpm", (unsigned long)60E6/(unsigned long)T);
pre_time = current_time;
lcd_gotoxy(0,0);
lcd_puts(buffer);

}

На LCD выводится бред.

Что не так?

Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 90:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru