'SERIAL_9O1' was not declared in this scope

Hallo,
ich bin neu hier und hab auch gleich mal ein Frage. Beim kompilieren von meinem Code bekomme ich die o.g. Fehlermeldung. Weiß einer wo ich diese Serial_9o1 deklarieren kann? Ich verwende Arduino1.8.5 und einen ProMini328.

Gruß Dirk

Deinen Sketch sollen wir jetzt erwürfeln? Setze ihn bitte in Codetags (</>-Button oben links im Forumseditor).
Bei der Fehlermeldung steht meist noch etwas mehr dabei. Das wäre auch gut zu wissen.

Gruß Tommy

Dann zeig doch mal deinen Sketch.
Setze ihn in Code-Tags, Schaltfläche </> oben links im Editorfenster.

Dem Fehler darfst du schon glauben. Weil es das nicht gibt

9 Datenbits gehen nicht:
https://www.arduino.cc/reference/en/language/functions/communication/serial/begin/

EDIT:
Wobei das eine Limitation der Arduino Software ist. Die Hardware unterstützt 9 Bits nämlich. Man könnte versuchen es per Hand auf 9 Bit zu stellen, aber die Serial Klasse wird trotzdem nicht mehr als 1 Byte verarbeiten können. So ist der interne Puffer ein Byte Array.

hier ein Ausschnitt aus dem Code:

void setup() {
  Serial.begin(9600, SERIAL_9O1);         // Set up a serial line for 9-bit serial with odd parity
  mySerial.begin(9600);                   // set the data rate for the SoftwareSerial port
  pinMode(LED_PIN, OUTPUT);               // set pin to output
  pinMode(SWITCHPIN, INPUT_PULLUP);       // set pin to input; this pin decides, if receiver-voltage or sensor-values will be read...
  while (zeiger < 33) {
    zeichenKette[zeiger] = ' ';
    zeiger++;
  }
  delay(3000);  	                      // kurz warten  
}

und die Fehlermeldung:

Jeti2Frsky_0C1:124: error: 'SERIAL_9O1' was not declared in this scope

   Serial.begin(9600, SERIAL_9O1);         // Set up a serial line for 9-bit serial with odd parity

                      ^

exit status 1
'SERIAL_9O1' was not declared in this scope

@Serenifly

wo kann ich dies von Hand auf 9 Bits stellen?

Gruß Dirk

Und wozu brauchst du die 9 Bit ?

Der Sketch ist zum auslesen von JETI Telemetriedaten gedacht und das JETI Protokol hat halt 9 Bits.

Gruß Dirk

Natürlich kommt da "was not declared in this scope". Was erwartest du sonst bei einem Makro das nicht existiert?

wo kann ich dies von Hand auf 9 Bits stellen?

Es wird wie gesagt nichts bringen. Die Serial Klasse arbeitet intern mit Bytes. Du kannst das extra Bit also nicht verarbeiten

Von Nick Gammon gibt es eine modifizierte Version der Serial Library:

Das Beispiel da beachten. Der Konstruktor hat einen zusätzlichen Parameter.

EDIT:
Link geändert. Gab einen neueren Beitrag im gleichen Thread

@Serenifly
danke für den Link!

Ich habe auch noch andere modifizierte Librarys gefunden. Jetzt funktioniert auch das einlesen von dem 9 Bit Protokoll :slight_smile:

Gruß Dirk