Не компелиться скетч под Ардуино 1.0.1
  • Приветсвую!
    скачал библиотеку GSM
    запускаю Ардуино 1.0.1 (последняя)
    открываю скетч из папки examles библиотеки TemperatureCheck.ino
    пробую компелить

    получаю массу ошибок в которых самому разобраться не получается - помогите пожалуйста
    ошибки которые вылазят

    TemperatureCheck:0: error: stray '\' in program
    In file included from TemperatureCheck.cpp:13:
    D:\arduino-1.0.1\libraries\GSM_lib/GSM.h:24: error: expected constructor, destructor, or type conversion before 'typedef'
    D:\arduino-1.0.1\libraries\GSM_lib/GSM.h:41: error: 'u8' has not been declared
    D:\arduino-1.0.1\libraries\GSM_lib/GSM.h:51: error: 'u8' does not name a type
    D:\arduino-1.0.1\libraries\GSM_lib/GSM.h:52: error: 'u8' does not name a type
    TemperatureCheck.cpp: In function 'void loop()':
    TemperatureCheck:54: error: 'IncomingCall' was not declared in this scope

    Спасибо.
  • если я в свой рабочий скетч вставляю
    #include <GSM.h>
    #include <avr/pgmspace.h>


    такое выдает
    core.a(HardwareSerial.cpp.o): In function `__vector_18':
    D:\arduino-1.0.1\hardware\arduino\cores\arduino/HardwareSerial.cpp:100: multiple definition of `__vector_18'
    GSM_lib\GSM.cpp.o:D:\arduino-1.0.1\libraries\GSM_lib/GSM.cpp:178: first defined here
  • Вы под какую платку компилируете?
    Наша либа написана под Atmega328 (Уно, Димиланова и т.п.).

    Под Мегу нужно использовать вот эти исходники
  • Наша либа написана под Atmega328 (Уно, Димиланова и т.п.).

    под нее родную и делаю
    Cosmo Black Star она же Димиланова
  • Попробуйте переименовать папку GSM_lib просто в GSM.
    Перезапустите Arduino IDE и снова попробуйте скомпилировать пример.
  • переименовал - не помогло ошибки все те же самые
    мой скетч со строчкой
    #include <GSM.h>
    #include <avr/pgmspace.h>

    core.a(HardwareSerial.cpp.o): In function `__vector_18':
    D:\arduino-1.0.1\hardware\arduino\cores\arduino/HardwareSerial.cpp:100: multiple definition of `__vector_18'
    GSM\GSM.cpp.o:D:\arduino-1.0.1\libraries\GSM/GSM.cpp:178: first defined here

    пример из вашей библиотеке TemperatureCheck.ino

    TemperatureCheck:0: error: stray '\' in program
    In file included from TemperatureCheck.cpp:13:
    D:\arduino-1.0.1\libraries\GSM/GSM.h:24: error: expected constructor, destructor, or type conversion before 'typedef'
    D:\arduino-1.0.1\libraries\GSM/GSM.h:41: error: 'u8' has not been declared
    D:\arduino-1.0.1\libraries\GSM/GSM.h:51: error: 'u8' does not name a type
    D:\arduino-1.0.1\libraries\GSM/GSM.h:52: error: 'u8' does not name a type
    TemperatureCheck.cpp: In function 'void loop()':
    TemperatureCheck:54: error: 'IncomingCall' was not declared in this scope

    все библиотеки, которые используються в примере (Dalass) работают нормально
  • В скетче, в самом верху, есть "точка" перед открывающимся комментарием, ее нужно удалить

    ./*
    Пример мониторинга температуры.


    Теперь должно все получиться.
  • да теперь примерочный код нормально откомпелился

    подключаю библиотеку к своему скетчу
    #include

    получаю

    core.a(HardwareSerial.cpp.o): In function `__vector_18':
    D:\arduino-1.0.1\hardware\arduino\cores\arduino/HardwareSerial.cpp:100: multiple definition of `__vector_18'
    GSM\GSM.cpp.o:D:\arduino-1.0.1\libraries\GSM/GSM.cpp:178: first defined here

    комментирую #include
    все нормально компилиться

    мой скотч
    все работает в железе
    и тут такая засада с подключением

    #include <GSM.h>
    #include <avr/pgmspace.h>
    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>
    #include <i2ckeypad.h>
    #include <DS1307.h>
    #include <OneWire.h>
    #include <DallasTemperature.h>
    //==============================================================================================
    #define LCD_ADDR 0x3A
    #define KBD_ADDR 0x38
    #define ROWS 4
    #define COLS 4
    #define ONE_WIRE_BUS 8
    //==============================================================================================
    const char RemoteID[] PROGMEM = "+79280000000";
    const char PIN[] PROGMEM = "0000";
    unsigned long interval = 60000;
    unsigned long currentMillis;
    unsigned long previousMillis;
    //==============================================================================================
    LiquidCrystal_I2C lcd(LCD_ADDR,16,2);
    i2ckeypad kpd = i2ckeypad(KBD_ADDR, ROWS, COLS);
    OneWire oneWire(ONE_WIRE_BUS);
    DallasTemperature sensors(&oneWire);
    //==============================================================================================
    void setup()
    {
    Serial.begin(9600);
    Wire.begin();
    lcd.init(); // initialize the lcd
    kpd.init();
    RTC.stop();
    RTC.start();
    sensors.begin();
    }
    //==============================================================================================
    void loop()
    {
    lcd.setCursor(0,0);
    lcd.print(RTC.get(DS1307_HR,true));
    lcd.print(":");
    lcd.print(RTC.get(DS1307_MIN,false));
    lcd.print(":");
    lcd.print(RTC.get(DS1307_SEC,false));
    lcd.setCursor(0,1);
    lcd.print(RTC.get(DS1307_DATE,false));
    lcd.print("/");
    lcd.print(RTC.get(DS1307_MTH,false));
    lcd.print("/");
    lcd.print(RTC.get(DS1307_YR,false));
    char key = kpd.get_key();
    if (key != '\0') {
    lcd.setCursor(0,0); lcd.print(key);
    }
    sensors.setWaitForConversion(false);
    sensors.requestTemperatures();
    sensors.setWaitForConversion(true);
    int resolution = 9;
    delay(750 / (1 << (12 - resolution)));
    lcd.setCursor(10,0);
    lcd.print(sensors.getTempCByIndex(0));
    lcd.print("C");
    }
    //==============================================================================================


  • создал новый скетч и стал постепенно переносить из своего
    затык и ошибки начинают если вставить
    Serial.begin(9600);
    а как теперь по монитору смотреть и отлаживать
    я знаю что шилд блокирует линии RX TX
    на моей плате для этого джампера стоят оперативно можно вкл выкл
    я так понял что конфлектует с вашей библиотекой так как там интенсивно используется COM порт
  • Да, библиотека GSM использует Serial (скорость 38400), поэтому Serial.begin(9600); делать не нужно.

    Отладочную инфу можно выводить на дисплей (lcd.print), либо отлаживать частями, сперва обработку данных сенсора, а уже потом подключить GSM-часть.
  • Спасибо Иван
    так и буду делать
    но точка меня убила, под другими редакторами ее видно а в оболочке ардуино если очень приглядется,
    но главное разобрались

Привет, незнакомец!

Похоже, вы новенький! Чтобы пообщаться с нами, кликните на одну из кнопок ниже :)

Войти с помощью OpenID

В этом теме: