roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 10:11

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Помогите с таймерами на Меге8
СообщениеДобавлено: 04 сен 2007, 12:02 
Не в сети

Зарегистрирован: 04 сен 2007, 11:42
Сообщения: 11
Откуда: Moscow
Здравствуйте, помогите новичку.

Инициализирую таймеры Т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 плохо симулирует?

Хочу сделать частотомер, правильно ли будет делать его на таймерах? Спасибо заранее.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 04 сен 2007, 12:10 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
В суть не вникал но if однократно провреряет условие - почему в описании "постоянно" ?

AVR может считать внешнюю частоту в 2 раза меньше тактовой а PIC до 40-50 МГц.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 04 сен 2007, 12:41 
Не в сети

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 04 сен 2007, 14:02 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Я просто while(1) не видел поэтому и уточнил.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 04 сен 2007, 14:05 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Советую выложить проект с исходником и для VMLAB  - тогда легче помочь будет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 сен 2007, 11:28 
Не в сети

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 сен 2007, 11:38 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Правильно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 сен 2007, 10:03 
Не в сети

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


Вложения:
my_project.rar [39.32 КиБ]
Скачиваний: 47
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO