IRremote interrupt

xaker1
Offline
Зарегистрирован: 24.01.2014

Доброе время суток.

Начал разбираться с ардуиной уно. Написал небольшой код - считываем температуру с ряда датчиков, посылаем по сериальному порту, и температуру с одного из датчиков выводим на семисегментники.

Но поскольку датчик не один, есть желание реализовать выбор нужно датчика для вывода на семисегментники. В наличии есть IR приемник с пультом.

Собственно проблема заключается в перехвате сигнала с пульта. 

Большую часть времени ардуина опрашивает датчики температуры (по сути в loop без задержки), поэтому в самом начале идет проверка на сигнал с пульта. Собственно опрос датчиков занимает довольно много времени (720 мс на один датчик) - в итоге нужно искать момент, когда сигнал будет перехвачен.

Возможно ли заставить IRremote перехватывать сигнал с пульта вне зависимости от тех действий, что выполняет ардуина (пришло прерывание от ик порта - декодировали, продолжили выполнять основной цикл)?

maksim
Offline
Зарегистрирован: 12.02.2012

Вы не в том направлении копаете.

xaker1 пишет:

по сути в loop без задержки

xaker1 пишет:

720 мс на один датчик

xaker1
Offline
Зарегистрирован: 24.01.2014

Предлагаете добавить задержку?

Ок. Для получения температуры нужно дать задание датчику и через 750 мс запросить и получить температуру.

Тут есть задержка. Что делать в таком случае? вместо задержки проверять команды по IR? ИМХО костыль.

maksim
Offline
Зарегистрирован: 12.02.2012

xaker1 пишет:

Предлагаете добавить задержку?

Нет. Нужно избавиться от задержки.

xaker1 пишет:

ИМХО костыль.

Костыль как раз то что вы пытаетесь сделать. Так  же костыль - опрашивать по одному датчику.

xaker1
Offline
Зарегистрирован: 24.01.2014

Ага.
Значит даем задание всем датчикам на вычисление температуры, запоминаем текущее время (в мс), и крутимся в loop (с проверкой IR) пока не пройдет 750 мс. Как прошло - снимаем показания.
Такой подход нормальный?

maksim
Offline
Зарегистрирован: 12.02.2012

Все верно. При непосредственном общении МК с датчиками запрещаются все прерывания, а значит ИК-приемник в эти моменты, все равно обрабатываться не будет, отсюда встает вопрос - зачем городить огород, если можно просто избавиться от задержки.