Stimmt dieser Code so?

Hallo zusammen, hab gerade mal wieder ein kleines Projekt am laufen. Über Visual Basic bekomme ich zwei Zahlen über die Serielle Schnittstelle auf den Arduino in diesem Format: Zahl1;Zahl2 Enter (z.B 3200;1000 Enter). Das Enter dient dazu um das Ende des Strings erkenntlich zu machen. Die beiden Zahlen sind die Werte, wie lange zwei LED's (an Port 13 und12) leuchten sollen. So weit so gut. jetz habe ich etwas am Code gebastelt, jedoch funktioniert das ganze nicht!

char buffer[10];
int data[2];
int bindex,dindex=0;
int rot = 13;
int weiss = 12;
int wert0;
int wert1;

void test(int wert0, int wert1) {
        Serial.println(wert0);
        Serial.println(wert1);
}

void setup() {
  pinMode(rot, OUTPUT);
  pinMode(weiss, OUTPUT);
  Serial.begin(9600);
}

void loop() 
{
  while(Serial.available() >0) {
    //aktuelles Zeichen einlesen
    buffer[bindex] = Serial.read();
    //Trenner oder Zeilenende gefunden
    if(buffer[bindex] == ';' || buffer[bindex] == '\n') {
      //Null-Terminierung
      buffer[bindex] = 0;
      //Umwandeln in eine Zahl
      data[dindex] = atoi(buffer);
     
      //Datenindex rotieren
      dindex = ++dindex % 3;

      //wenn index wieder auf 0 gesetzt wird, dann wurden 2 werte eingelesen
      if(dindex==0) test(data[0], data[1]); // testfunktion
     
      //Buffer Index zurücksetzen
      bindex = 0;
    } else {
      bindex++;
    }
    
      digitalWrite(rot, HIGH);   
      delay(wert0);      // led soll so lange an sein, wie wert0 groß ist.
      digitalWrite(rot, LOW);
      
      digitalWrite(weiss, HIGH);   
      delay(wert1);               // led soll so lange an sein, wie wert1 groß ist.
      digitalWrite(weiss, LOW);
    
  } 
  
}

Bitte nicht auslachen :D bin noch Anfänger ;)

Nein, nicht auslachen; nur nachfragen:

Bevor wir lange mühsam erkunden, was da etwa nicht funktionieren könntest Du bitte einen Fehlerbeschreibung bzw falls der Sketch nicht kompiliert wird, die Fehlermeldungen un szukommen lassen?

Grüße Uwe

Kompiliert wird er einwandfrei, jedoch bin erzielt der Code nicht die gewünschte Wirkung.
Habe ich einen Fehler drin?

Was ist die erwünschte Wirkung und was passiert wirklich?

Habe ich einen Fehler drin?

Wenn der Sketch nicht das macht, was er soll, dann ja, ist ein Fehler drin. ;) ;) ;)

Grüße Uwe

Wenn die Zahlen gesendet werden passiert eifach gar nichts, auser dass die Led eine kurze milisekunde aufflackrt. Eigentlich sollten die Werte z.B 1200;300 Enter in wert0 = 1200 und wert1 = 300 aufteilen, diese will ich dann in die delay einsetzen, was die Leuchtdauer der Leds darstellt.

Was gibt Dir

test(data[0], data[1]);

aus?

Den Teil hab ich aus einem anderen Post. Ich glaube aber das er nicht benötigt wird, nur für Testzwecke ist.

Arduino_VB: Den Teil hab ich aus einem anderen Post. Ich glaube aber das er nicht benötigt wird, nur für Testzwecke ist.

Ja, für Testzwecke; Du tapst im Dunkeln und weißt nicht was der Sketch macht. Also laß Dir die Variablen ausdrucken damit Du weißt was drin ist.

Grüße Uwe