Go Down

Topic: Fragen zu Serial.read() (Read 314 times) previous topic - next topic

Ballibum

Hallo Forum,
ich versuche mich gerade mit dem Serial.read();
Dabei verwende ich folgende Funktion:
Code: [Select]
void readauswerten()
{
  if (Serial.available() > 0)
  {
    char c = Serial.read();
    Serial.print("Eingegeben: ");
    Serial.println(c);
  }
}

Nun ist es so das nicht jedes Zeichen was ich eintippe auch ausgegeben wird und ansonsten jedes Zeichen einzeln. Ich hätte es jetzt gerne das meine Zeichenkette als ganzes und zusammen ausgegeben wird.
Das Problem, das einige Zeichen fehlen, liegt wohl daran das in einer meiner Funktionen ein Delay ausgeführt wird. Kann ich das dennoch kombinieren?
mfg
Balli

Hier der Part des Programmes um das es geht:
Code: [Select]
void loop()
{
  uhrzeitauswerten();
  readauswerten();
}

void readauswerten()//
{
  if (Serial.available() > 0)
  {
    char c = Serial.read();
    Serial.print("I received: ");
    Serial.println(c);
  }
}


void uhrzeitauswerten()//Zeitsteuerung
{
  DateTime now = RTC.now();
  Serial.print(now.hour(), DEC);
  Serial.print(':');
  Serial.print(now.minute(), DEC);
  Serial.print(':');
  Serial.print(now.second(), DEC);
  Serial.println();
  //LEDs anschalten
 
  if(now.hour()>= LEDSon && now.hour()<LEDSoff)
  {
    digitalWrite(pin09,HIGH);
    digitalWrite(pin10,HIGH);
    digitalWrite(ikea,LOW);
  }
  else
  {
    digitalWrite(pin09,LOW);
    digitalWrite(pin10,LOW);
    digitalWrite(ikea,HIGH);
  }
  delay(1000); //HIER IST DAS KRITISCHE DELAY
}

Ballibum

Also ich habe das Delay jetzt einfach entfernt, das führt jedoch dazu das die Uhrzeit pro Sekunde mehrfach ausgegeben wird. Das habe ich umgangen indem ich einen Zwischenspeicher in Form einer Variable eingeführt habe und diesem den aktuellen Sekundenwert übergebe. Solange wie jetzt der Sekundenwert der RTC mit dem Zwischenspeicher übereinstand wird die Uhrzeit nicht ausgegeben, wenn sich jetzt die Sekunde der RTC ändert, wird die Uhrzeit ausgegeben und anschließend der Sekundenwert in den Zwischenspeicher geschrieben.
mfg
Tim

Go Up
 

Quick Reply

With Quick-Reply you can write a post when viewing a topic without loading a new page. You can still use bulletin board code and smileys as you would in a normal post.

Warning: this topic has not been posted in for at least 120 days.
Unless you're sure you want to reply, please consider starting a new topic.

Note: this post will not display until it's been approved by a moderator.
Name:
Email:

shortcuts: alt+s submit/post or alt+p preview