[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
захват двух сигналов
tenevikusДата: Пятница, 29.06.2012, 13:43 | Сообщение # 1
Группа: Друзья
Сообщений: 38

Статус: Offline
день добрый. сделал тележку для робота. на шестеренки редукторов правого и левого мотора повесил щелевые оптопары. соответственно подсчитываю количество оборотов там и там.
я делаю это через прерывания int0 и int1 а в обработке прерывания просто увеличивается переменная количества оборотов. вот вопрос. оптимально ли это? или может есть еще какой хороший способ?


 
exersizzeДата: Пятница, 29.06.2012, 15:44 | Сообщение # 2
Группа: Администраторы
Сообщений: 723

Статус: Offline
по мне так - оптимальней некуда :) даже если сигналы придут обсолютно синхронно (что маловероятно) микроокнтроллер за счет флага прерывания, обработает сначала один сигнал, затем творой. И ничего не потеряется. Главное чтобы обработчик был легкий, тоесть не выполнялось бы там много операций... Хотя микроконтроллер успеет совершить 100500 операций до того как придет следующий сигнал.

 
Aleks8383Дата: Суббота, 30.06.2012, 07:45 | Сообщение # 3
Группа: Проверенные
Сообщений: 104

Статус: Offline
Извените за то что не в тему,я так понял если идёт одно прерывание скажим INTO и сработает прирывание INT1 то сначало обработается первое прерывание,а уже потом выполнится второе прерывание??? и так можно до безконечности???и как я понимаю при этом нельзя очищать регистр прерывания (GIFR64)???

 
tenevikusДата: Суббота, 30.06.2012, 13:36 | Сообщение # 4
Группа: Друзья
Сообщений: 38

Статус: Offline
так так так... у меня помимо установки флага в каждом прерывании еще и GIFR64 стоит... sad

 
exersizzeДата: Суббота, 30.06.2012, 14:30 | Сообщение # 5
Группа: Администраторы
Сообщений: 723

Статус: Offline
Да прерывания пришедшие во время обработки, будут обработаны после завершения первого прерывания. Тут принцип простой- кто первый встал того и тапки. А факт того что прерывание нужно обработать хранится в регистре GIFR (в новых моделях мк регистр EIFR). Если очистить регистр второго прерывания в первом прерывании, то второе прерывание обработано не будет. Может и запутанно написал, но на самом деле тут все просто :)

 
  • Страница 1 из 1
  • 1
Поиск: