23.02.2016, 19:49
|
|
Гражданин KAZUS.RU
Регистрация: 16.06.2005
Сообщений: 945
Сказал спасибо: 25
Сказали Спасибо 175 раз(а) в 124 сообщении(ях)
|
Re: Timer2 in Atmega8 and Atmega16
Сообщение от miwutka
|
TCCR1B=0x0B;
|
Сообщение от miwutka
|
TCCR1B=(0‹‹ICNC1) | (0‹‹ICES1) | (0‹‹WGM13) | (1‹‹WGM12) | (0‹‹CS12) | (1‹‹CS11) | (0‹‹CS10);
|
Миш, а тебя ничего не смущает? Вот в этих двух строчках. Первая - твоя настройка таймера1 для меги8, вторая - для меги16.
|
|
|
|
23.02.2016, 22:11
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Timer2 in Atmega8 and Atmega16
Впринципе не смущает... У 8-ой 2500 прерываний в секунду, а у 16-ой 2000.... Я в прерывании считаю 2500 или 2000 (смотря какая мега ) и принимаю за 1 секунду. Каждую секунду я вывожу на индикатор герцы сети.....
Ща гляну в даташит.....
А ну то просто разные пределители частоты таймера...
|
|
|
|
23.02.2016, 23:12
|
|
Гражданин KAZUS.RU
Регистрация: 16.06.2005
Сообщений: 945
Сказал спасибо: 25
Сказали Спасибо 175 раз(а) в 124 сообщении(ях)
|
Re: Timer2 in Atmega8 and Atmega16
Сообщение от miwutka
|
У 8-ой 2500 прерываний в секунду, а у 16-ой 2000....
|
Вообще-то секунда при 8000000/8 занимает 1000000 тиков. Во втором же случае, в секунду войдёт 8000000/64=125000 тиков.
|
|
|
|
23.02.2016, 23:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Timer2 in Atmega8 and Atmega16
Someone, ну да. Я наверно неправильно выразился.... При 8000000/8 занимает 1000000 тиков. OCR=499 значит за секунду возникнет 2000 прерываний.
|
|
|
|
24.02.2016, 00:01
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
|
Re: Timer2 in Atmega8 and Atmega16
Если тебе надо посчитать частоту, у таймера есть режим захвата. И совсем ни к чему обрабатывать 2500 прерываний.
Напиши подробно, что тебе надо.
|
|
|
|
24.02.2016, 01:16
|
|
Гражданин KAZUS.RU
Регистрация: 16.06.2005
Сообщений: 945
Сказал спасибо: 25
Сказали Спасибо 175 раз(а) в 124 сообщении(ях)
|
Re: Timer2 in Atmega8 and Atmega16
Сообщение от miwutka
|
значит за секунду возникнет 2000 прерываний.
|
Но зачем тебе 2000 прерываний, как верно заметил Годзила? Даже не используя режим захвата таймера (насколько я понимаю, схемотехнически ты завёл вход частоты на внешнее прерывание, а не на вход захвата таймера), что мешает настроить таймер1 на, к примеру, 1/512 секунды, обнулить счётчик импульсов от твоего детектора 0, разрешить прерывания от детектора (у тебя вроде инт0?), в этом прерывании инкрементировать счётчик. Когда сработает прерывание от таймера1, запретить внешнее прерывание, поставить флаг завершения измерения частоты, и в главной программе, если флаг окончания измерения стоит, сбросив его, посчитать значение частоты, умножив число в счётчике на 512?
|
|
|
|
24.02.2016, 01:29
|
|
Гражданин KAZUS.RU
Регистрация: 16.06.2005
Сообщений: 945
Сказал спасибо: 25
Сказали Спасибо 175 раз(а) в 124 сообщении(ях)
|
Re: Timer2 in Atmega8 and Atmega16
ЗЫ: И кстати говоря, не 2000, а 1/(499*0.000001)=2004. В принципе, погрешность не большая, но она есть.
|
|
|
|
24.02.2016, 19:19
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Timer2 in Atmega8 and Atmega16
Не, мне частота впринцыпе не нужна. То я просто мониторю что детектор 0 работает. Но случайно обратил внимание что при включении таймера 2 он начинает сбоить. Ну то пока черный ящик для меня.... Отложу пока. А вот за режим захвата спасибо. Я как раз хочу сделать тахометр и спидометр. Тахометр уже год как работает электронный но с запаздыванием чуток. Мне он не нравиться. Хочу вот как вы сказали сделать в режиме захвата. Чтобы он реагировал в реальном времени. И датчик скорости тоже подключить хочу. Но вот думаю прийдется значит два таймера задействовать. Как потеплеет займусь этим.....
|
|
|
|
21.03.2016, 12:09
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Timer2 in Atmega8 and Atmega16
Godzilla82, с режимом захвата разобрался спасибо. Атмегу 8 заменил на атмегу 168 и все стало отлично работать, успевает всё считать. Видно 8-ая не справлялась с расчетами. У 168-ой встроенный 2-тактный множитель написано в даташите. Возможно это помогло решить проблему...
|
|
|
|
10.04.2016, 21:40
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Timer2 in Atmega8 and Atmega16
скажите атмега 8 и 168 имеют различия в вычислении чисел float??? В атмеге 8 одно и тоже выполняется раз в 20-50 медленнее.....
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:52.
|
|