Warum delay vor Versenden über UART?

Gast #2119750
Lesenswert?

Mahlzeit Forum,

ich möchte gerne ein Geräte über den UART ansteuern. Ich empfange die 
Daten mittels Polling. Ich habe bemerkt, dass ich das Gerät nur 
ansteuern kann, wenn ich vor und nach dem Versenden ein delay einbaue.

for( i = 0; i < 2; i++)
_delay_ms(8000);


send_command("Befehl");

for( i = 0; i < 2; i++)
_delay_ms(8000);


An was liegt das???
Gast #2119766
Lesenswert?

> ich möchte gerne ein Geräte über den UART ansteuern.
Schön...
WELCHES Gerät willst du mit WAS ansteuern? Mehr Infos = mehr Hilfe.

> An was liegt das???
Mit den paar Infos: Keine Ahnung :)

Ralf
Gast #2119790
Lesenswert?

Hallo,
sorry für die etwas karge Beschreibung.Ich steuere über eine Arduino 
Board (16MHz, Atmega 2560) ein Pumpensystem an. Wie gesagt kontrolliere 
ich die Daten mittels Polling und möchte auch Befehle mit...

void send_char(unsigned char data)
{
  while (!(UCSR0A & (1 << UDRE0)));
  UDR0 = data;
}

void send(char *string)
{
  while(*string)
  {
    send_char(*string);
    string++;
  }
  send_char(0x0D);
}

...versenden. Wenn ich aber ohne diese delays arbeite klappt das nicht 
mit dem Ansteuern.
Gast #2120266
Lesenswert?

Klappt die Kommunikation, wenn statt Pumpensystem ein PC mit 
Terminalprogramm angeschlossen ist?

Wenn nein, liegt etwas grundsätzlich im Argen. Es kann dann helfen, den 
kompletten Arduino-Code zu zeigen.

Wenn ja, sollte man in das Datenblatt des Pumpensystems schauen, ob bei 
der seriellen Kommunikation mit dem Pumpensystem etwas zu beachten ist.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren