Serielle Eingabe

Hi ich stehe gerade komplett auf der Leitung.

Ich wollte den Arduino ein Signal vom Empfangen lassen … (0x00 - 0xFF) … dieses Signal müsste aufgeteilt werden in die “Einerstelle” und die andere. Mein Gedanke dazu war, dass ich im loop Abfrage Serial.available()
dann in eine Funktion gehe mit dem Code;

void lesen(int *prr, int *h)
{
byte input=0;

input=Serial.read();

prr = input >> 4;
h = input - ((input >> 4) << 4);
}

Mache ich da einen Fehler?!
Ich glaub ich sehe komplett auf der Leitung…

Ja ja, die lieben Pointer … :slight_smile:

*prr = input >> 4;
*h = input - ((input >> 4) << 4);

Mache es Dir doch einfacher mit Referenzen:

void lesen(int &prr, int &h)
{
  byte input=0;

  input=Serial.read();
                 
   prr = input >> 4;                           
   h = input - ((input >> 4) << 4);             
}

//Aufruf mit:
int prr,h;
lesen(prr,h);

Gruß Tommy

pr ist der Zeiger selbst und nur eine lokale Variable in der Funktion. Das ist die Adresse der Variable. *pr ist der eigentliche Inhalt der Variable

Falls Du Dich auf mein Beispiel beziehst, ich arbeite mit Referenzen, nicht mit Pointern.

Gruß Tommy

Das hat doch mir dir nichts tun :slight_smile:

Ich meinte ganz allgemein

Ok, weil Du ohne einen anderen Bezug unter meinem Beitrag geantwortet hast, hätte man das vermuten können.

Gruß Tommy