roboforum.ru

Технический форум по робототехнике.

 

Помогите с таймерами на Меге8

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Помогите с таймерами на Меге8

Сообщение Nikolai A » 04 сен 2007, 12:02

Здравствуйте, помогите новичку.

Инициализирую таймеры Т0 и Т1 по внешнему сигналу.
Код на С:  
  if(PINB.3){
        TCCR0=0x05; Внутренний источник сигнала
        TCCR1B=0x05;  Внутренний источник сигнала
  }
Симулирую в VMlab, при постоянном присутствии 1 на PINB.3 таймер Т1 не считает :evil: , а таймер Т0 все нормально считает.
Как только 1 на PINB.3 пропадает Т1 начинает считать. :D  Если Т1 переключаю на внешний источник тактового сигнала, то он при постоянном присутствии 1 на PINB.3 считает нормально.
Может кто знает в чем причина? Или это VMlab плохо симулирует?

Хочу сделать частотомер, правильно ли будет делать его на таймерах? Спасибо заранее.
Nikolai A
 
Сообщения: 11
Зарегистрирован: 04 сен 2007, 11:42
Откуда: Moscow

Сообщение avr123.nm.ru » 04 сен 2007, 12:10

В суть не вникал но if однократно провреряет условие - почему в описании "постоянно" ?

AVR может считать внешнюю частоту в 2 раза меньше тактовой а PIC до 40-50 МГц.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение Nikolai A » 04 сен 2007, 12:41

Не знаю правильно ли объясню.
if находится внутри цикла while(1) т.е. условие if проверяется постоянно, если на PINB.3 1 не меняется какое-то время, то if с каждым циклом загружает управляюшие регистры значением 0х05, проблема в том, что Т0 работает, а Т1 не хочет. Вот я и пытаюсь понять почему и можно ли этого избежать.
Nikolai A
 
Сообщения: 11
Зарегистрирован: 04 сен 2007, 11:42
Откуда: Moscow

Сообщение avr123.nm.ru » 04 сен 2007, 14:02

Я просто while(1) не видел поэтому и уточнил.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение avr123.nm.ru » 04 сен 2007, 14:05

Советую выложить проект с исходником и для VMLAB  - тогда легче помочь будет.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение Nikolai A » 05 сен 2007, 11:28

Хорошо, завтра постараюсь выложить.
А есть ли какие-то соображения правильно ли делать частотомер на таймерах или может есть пути более рациональные?
Nikolai A
 
Сообщения: 11
Зарегистрирован: 04 сен 2007, 11:42
Откуда: Moscow

Сообщение avr123.nm.ru » 05 сен 2007, 11:38

Правильно.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение Nikolai A » 06 сен 2007, 10:03

Спасибо, значит я на правильном пути.
Вот выкладываю архив с проектом полностью.
Вложения
my_project.rar
(39.32 КиБ) Скачиваний: 47
Nikolai A
 
Сообщения: 11
Зарегистрирован: 04 сен 2007, 11:42
Откуда: Moscow


Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

Mail.ru counter