GPS Шилд - скетч из примера не компилируется

Strannik-s
Offline
Зарегистрирован: 13.05.2015

Господа, доброго всем дня!

Две недели как осваиваю Адруино,

дошло время до GPS модуля и вот засада - скетч из мримера не компилируется, выдает 

'BYTE' was not declared in this scope - что за BYTE  и как его задекларировать ?

#include <SoftwareSerial.h>

// Constants
#define rxPin 9      //rx pin in gps connection
#define txPin 8      //tx pin in gps connection

// set up the serial port

SoftwareSerial gps = SoftwareSerial(rxPin, txPin);

// variables
byte byteGPS = 0;
int i = 0;
int h = 0;

// Buffers for data input
char inBuffer[300] = "";
char GPS_RMC[100]="";
char GPS_GGA[100]="";

void setup(){

  //setup for mySerial port
  pinMode(rxPin, INPUT);
  pinMode(txPin, OUTPUT);
  gps.begin(4800);
  
  //setup for Serial port
  Serial.begin(19200);
  
  delay(1000);
}

void loop(){
  
  // Read the RMC sentence from GPS
  byteGPS = 0;
  byteGPS = gps.read();
  while(byteGPS != 'R'){
    byteGPS = gps.read();
  }
  GPS_RMC[0]='$';
  GPS_RMC[1]='G';
  GPS_RMC[2]='P';    
  GPS_RMC[3]='R';
  
    i = 4;
    while(byteGPS != '*'){                  
      byteGPS = gps.read();         
      inBuffer[i]=byteGPS;
      GPS_RMC[i]=byteGPS;
      i++;                      
  }
  
  // Read GGA sentence from GPS
  byteGPS = 0;
  byteGPS = gps.read();
  while(byteGPS != 'A'){
    byteGPS = gps.read();
  }
  GPS_GGA[0]='$';
  GPS_GGA[1]='G';
  GPS_GGA[2]='P';    
  GPS_GGA[3]='G';
  GPS_GGA[4]='G';
  GPS_GGA[5]='A';
  
    i = 6;
    while(byteGPS != '*'){                  
      byteGPS = gps.read();         
      inBuffer[i]=byteGPS;
      GPS_GGA[i]=byteGPS;
      i++;                      
  }
    
  // print the GGA sentence to USB
  Serial.print("GGA sentence: ");
  h = 0;
  while(GPS_GGA[h] != 42){
    Serial.print(GPS_GGA[h],BYTE);
    h++;
  }
  Serial.println();
  
  // print the RMC sentence to USB
  Serial.print("RMC sentence: ");
  h = 0;
  while(GPS_RMC[h] != 42){
    Serial.print(GPS_RMC[h],BYTE);
    h++;
  }
  Serial.println();
}
nevkon
Offline
Зарегистрирован: 20.01.2015

Версия IDE и полный текст ошибки? Он не на весь текст ведь ссылается, а на конкретную строку.

Strannik-s
Offline
Зарегистрирован: 13.05.2015

две конкретные строки 102 и 111 

GPS-chaltir.ino: In function 'void loop()':
GPS-chaltir.ino:102:29: error: 'BYTE' was not declared in this scope
GPS-chaltir.ino:111:29: error: 'BYTE' was not declared in this scope
Ошибка компиляции.
 
 
5 - я - 111 и выше 105
Araris
Offline
Зарегистрирован: 09.11.2012

Вместо Serial.print(GPS_GGA[h],BYTE) поставьте Serial.write(GPS_GGA[h]) и во втором случае тоже.

Strannik-s
Offline
Зарегистрирован: 13.05.2015

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

nevkon
Offline
Зарегистрирован: 20.01.2015

Еще вопрос: какая дуина используется. Надо ли софт сериал?

В мониторе может быть абракадабра. В программе предполагалось преобразование символа в число (возврат кода символа). Попробуйте прямое преобразование:

    Serial.print(byte(GPS_RMC[h]));

Опирался на описания типов:

http://arduino.ru/Reference/Char

http://arduino.ru/Reference/Byte