Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
03.09.2017, 11:29
|
|
Прописка
Регистрация: 07.09.2014
Сообщений: 136
Сказал спасибо: 18
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
конвертер пультов на arduino
код выполняется только один раз и зависает после irsend.sendNEC(0xFFDA25, 32);
цикл и условия работают если закомментировать строку irsend.sendNEC(0xFFDA25, 32);
почему так происходит?
Код:
|
#include IRremote.h
IRsend irsend;
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn();
Serial.println("Enabled");
}
void loop() {
if (irrecv.decode(&results)) //this checks to see if a code has been received
{ Serial.println(results.value, HEX);
if (results.value == 0xA32AB931)
{
delay(1000);
irsend.sendNEC(0xFFDA25, 32);
Serial.println("irsend");
}
Serial.println("irsent");
irrecv.resume(); //receive the next value
}
delay(100);
} |
__________________
Самое главное умение - умение радоваться жизни.
Последний раз редактировалось AVRkin; 03.09.2017 в 12:53.
|
|
|
|
03.09.2017, 12:33
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,072
Сказал спасибо: 3,054
Сказали Спасибо 3,223 раз(а) в 2,188 сообщении(ях)
|
Re: конвертер пультов на arduino
Сообщение от AVRkin
|
зависает после irsend.sendNEC ...
почему так происходит?
|
Потому, что не приведён код этого самого irsend.sendNEC.
P.S. Прерывания используются и какие?
__________________
Экзорцист 40-го уровня.
|
|
|
|
03.09.2017, 12:44
|
|
Прописка
Регистрация: 07.09.2014
Сообщений: 136
Сказал спасибо: 18
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: конвертер пультов на arduino
Сообщение от ForcePoint
|
Потому, что не приведён код этого самого irsend.sendNEC.
P.S. Прерывания используются и какие?
|
Код:
|
// Main class for sending IR
//
class IRsend
{
public:
IRsend () { }
void custom_delay_usec (unsigned long uSecs);
void enableIROut (int khz) ;
void mark (unsigned int usec) ;
void space (unsigned int usec) ;
void sendRaw (const unsigned int buf[], unsigned int len, unsigned int hz) ;
//.................................................. ....................
# if SEND_RC5
void sendRC5 (unsigned long data, int nbits) ;
# endif
# if SEND_RC6
void sendRC6 (unsigned long data, int nbits) ;
# endif
//.................................................. ....................
# if SEND_NEC
void sendNEC (unsigned long data, int nbits) ;
# endif
//.................................................. ....................
# if SEND_SONY
void sendSony (unsigned long data, int nbits) ;
# endif
//.................................................. ....................
# if SEND_PANASONIC
void sendPanasonic (unsigned int address, unsigned long data) ;
# endif
//.................................................. ....................
# if SEND_JVC
// JVC does NOT repeat by sending a separate code (like NEC does).
// The JVC protocol repeats by skipping the header.
// To send a JVC repeat signal, send the original code value
// and set 'repeat' to true
void sendJVC (unsigned long data, int nbits, bool repeat) ;
# endif
//.................................................. ....................
# if SEND_SAMSUNG
void sendSAMSUNG (unsigned long data, int nbits) ;
# endif
//.................................................. ....................
# if SEND_WHYNTER
void sendWhynter (unsigned long data, int nbits) ;
# endif
//.................................................. ....................
# if SEND_AIWA_RC_T501
void sendAiwaRCT501 (int code) ;
# endif
//.................................................. ....................
# if SEND_LG
void sendLG (unsigned long data, int nbits) ;
# endif
//.................................................. ....................
# if SEND_SANYO
void sendSanyo ( ) ; // NOT WRITTEN
# endif
//.................................................. ....................
# if SEND_MISUBISHI
void sendMitsubishi ( ) ; // NOT WRITTEN
# endif
//.................................................. ....................
# if SEND_DISH
void sendDISH (unsigned long data, int nbits) ;
# endif
//.................................................. ....................
# if SEND_SHARP
void sendSharpRaw (unsigned long data, int nbits) ;
void sendSharp (unsigned int address, unsigned int command) ;
# endif
//.................................................. ....................
# if SEND_DENON
void sendDenon (unsigned long data, int nbits) ;
# endif
//.................................................. ....................
# if SEND_PRONTO
void sendPronto (char* code, bool repeat, bool fallback) ;
# endif
//.................................................. ....................
# if SEND_LEGO_PF
void sendLegoPowerFunctions (uint16_t data, bool repeat = true) ;
# endif
} ;
#endif |
__________________
Самое главное умение - умение радоваться жизни.
Последний раз редактировалось AVRkin; 03.09.2017 в 12:52.
|
|
|
|
04.09.2017, 00:09
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,072
Сказал спасибо: 3,054
Сказали Спасибо 3,223 раз(а) в 2,188 сообщении(ях)
|
Re: конвертер пультов на arduino
Так можно обсуждать долго...
Есть такой метод "отдадочный вывод информации". Вставляете в код коротенькие подпрограммы с выдачей текущей информации о работе программы. Например - значение program counter (или даже сразу - номер текущего куска программы) и каких-нибудь ключевых переменных. Выдача - как придумаете. Шикарно - на UART (и в терминалку на ПК), допустимо - на светодиодики (хоть даже и припаяные для этой самой отладки).
По сути сказать нечего, кроме того, что мне не вполне понятно, чем и как определяется выбор нужного протокола для передачи. В классах я не силён...
__________________
Экзорцист 40-го уровня.
|
|
|
|
04.09.2017, 01:18
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,260
Сказал спасибо: 11,170
Сказали Спасибо 3,860 раз(а) в 2,930 сообщении(ях)
|
Re: конвертер пультов на arduino
AVRkin, а описание для того метода в классе где?
Что говорит документация про взаимодействие с NEC и варианты параметров?
Тут надо в полном объёме изучать используемое.
Текст функции sendNEC найдите в исходниках и набейте ее отладочным выводом.
В качестве альтернативы - используйте нормальную среду для разработки и проверьте Ваш алгоритм с нормальной пошаговой отладкой.
Пока больше вопросов. Для ответов нужны все исходники Вашего проекта, включая все подключаемые библиотечные файлы, как минимум…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:01.
|
|