DigisparkIRLib
- Войдите на сайт для отправки комментариев
Чт, 07/07/2016 - 14:44
использовал Pro Mini 5v с библиотекой IRremote, все компилилось хорошо
взял digispark с библиотекой DigisparkIRLib, удалил IRremote, чтобы не конфликтовали
открыл скетч из примеров, пытаюсь скомпилить, получаю
Arduino: 1.6.9 (Windows XP), Board: "Digispark Pro (Default 16 Mhz)"
irtest-ardu-TXdigispark:5: error: 'IRsend' does not name a type
IRsend My_Sender;
^
D:\TXdigispark\irtest-ardu-TXdigispark.ino: In function 'void loop()':
irtest-ardu-TXdigispark:55: error: 'My_Sender' was not declared in this scope
My_Sender.send(RC5,id, 12);
^
exit status 1
'IRsend' does not name a type
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
В инете везде пишут, чтонадо RobotIRremote удалить, но он у меня удален уже давно, когда поставил IRremote.
С чем еще может конфликтовать?
С названием Вашего файла.
название скетча? пересохранился в test1, та же проблема.
Во-первых, давайте нормальный скетч. Мы же не знаем, что у Вас там написано.
Во-вторых, давайте полную копипасту сообщений компилятора.
В-третьих, указывайте на источник библиотеки - их с одинаковыми именами как грязи.
>> Во-первых, давайте нормальный скетч. Мы же не знаем, что у Вас там написано.
#include <IRLib.h> IRsend My_Sender; int id=1; void setup() { } void loop() { My_Sender.send(RC5,id, 12); delay(10); }>> Во-вторых, давайте полную копипасту сообщений компилятора.
>> В-третьих, указывайте на источник библиотеки - их с одинаковыми именами как грязи.
https://github.com/digistump/DigistumpArduino/tree/master/digistump-avr/...
Строка 50 библиотеки (по той ссылке, что Вы дали) выглядит так:
Уберите комментарий. Пусть будет
Думаю, что эту проблему это решит.
Уже лучше, но теперь отругалось на все остальное.
Строка 50 библиотеки (по той ссылке, что Вы дали) выглядит так:
Уберите комментарий. Пусть будет
Возник вопрос немного не по теме:
А если не редактировать библиотеку,
а вставить в скетч:
Лучше бы Вы это как код вставили, я бы мог на номера строк ссылаться.
Но в целом понятно. У Вас куча (огромная) ругани на таймер/счётчик 2. Вот посмотрите на сообщения. Все слова типа WGM21, TCCR2A, TCCR2B, OCR2A, TCNT2, OCIE2A, TIMSK2, WGM2x, OCR2B и т.п. это всё про таймер/счётчик 2
Видимо, библиотека его активно использует. Только вот беда - Digispark сделан на контроллере ATtiny85. А у этого контроллера попросту нет таймера/счётчика 2. Нет и взять негде.
По идее эта ситуация отрабатывается в файле IRLibTimer.h Вашей библиотеки. Но почему-то не отработала.
В связи с этим Вам необходимо убедиться, что в настройках IDE у Вас действительно стоит ATtiny85, а не что-нибудь другое. И вообще, что все настройки правильные. А то сейчас ощущение, что в части настроек у Вас правильно, а в другой стоит какая-нибудь ATmega328
А если не редактировать библиотеку,
а вставить в скетч:
Пожалуйста, должно нормально работать.
Все скомпилилось и залилось ок.
Изменил выбор платы с Digispark pro (Default 16 MHz) на Digispark (Default 16.5 MHz)
Все скомпилилось и залилось ок.
Изменил выбор платы с Digispark pro (Default 16 MHz) на Digispark (Default 16.5 MHz)
Значит Digispark pro НЕ на ATtiny85, потому у Вас и лезли заходы на второй таймер.
Ну, поздравляю с Победой!
видимо, да. хотя дела все по инструкции, и вроде бы везде тини85 должно быть, различия только в плате.
там кстати поковырялся еще в библиотеке, можно на другой таймер вешать в случае, если выбранный используется для millis()
пожалуй, продолжу тему, а то не пашет нормально.
часть кода передатчика (на Digispark, юзаем IRLib.h)
while(1) //main transmit cycle { My_Sender.send(RC5,1,14); delay(100); }Часть кода приемника (на Pro Mini, юзаем IRRemote.h)
void loop() { if (irrecv.decode(&results)) // Если данные пришли { recvid=results.value; Serial.println(recvid, DEC); // Отправляем полученную данную в консоль irrecv.resume(); // Принимаем следующую команду } }отправляю 1 все время, на приемнике приходит такое