mit Serial.read werte über 255 lesen

Hi,

Ich habe das problem dass ich von meinem Rechner Werte zum µC schicke die zwischen 1 und 512 liegen. Ich kann aber mit der Funktion Serial.read nur werte zwischen 0 und 255 einlesen.

hat einer eine Idee wie mehr als 1 byte lesen kann und dadurch meinen Wertebereich abdenken kann ??

MfG

Michael

Vielleicht so in der Art: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1282583684/7#7

Oder etwas in der Art: http://www.arduino.cc/playground/Code/Messenger?

Udo

Hallo B033el

oder diesen Code wenn Du die Zahl als Ascii Werte über die Serielle Schnittstelle überträgst; Beispiel: “2”, “3”, “6” für 236. Typischerweise über ein Terminal über PC.

...
int incomingByte;   
char Data[8];
int i;
unsigned long Zeit;
....

loop{...
 do {
     // Wenn Daten verfügbar Zeichen in Data schreiben bis 7 Zeichen erreicht oder 0,5 Sekunden Warten nach dem ersten übertragenen byte
     if (Serial.available()) {       
       Data[i] = Serial.read();
       i++;
       }     
     if(i<1)Zeit = millis(); 
     } while (i<7&&(millis()-Zeit) < 500);
  
   // Abschließende Null für gültigen String
   Data[i] = 0;    
  
   incomingByte = atof(Data);  // Wert von String zu Zahl wandeln
   i=0;

Wenn Du mehrere Byte über die serielle Schnittstelle sendest werden 7 byte gelesen und in eine Zahl gewandelt.
Falls nicht 7 Byte übertragen werden, weil Du nur eine kleine Zahl hast werden die Zahlen empfangen und 0,5 Sekunden gewartet und dann die Zahl gewandelt)

Falls Du die Zahlen nicht als Ascii Werte überträgst, sonder niederwertiger/ höherwertiger Teil, mußt Du die höherwertige Zahl mal 256 nehmen und die niederwertigere Zahl dazuzählen.
Grüeß Uwe

ich bedanke mich für die Antworten. Ich habe die Lösung von uwefed verwendet und es geht so wie ich das haben will.

Vielen dank