-         

Ergebnis 1 bis 4 von 4

Thema: Time Out???

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.07.2004
    Ort
    Regensburg
    Alter
    33
    Beiträge
    366

    Time Out???

    Anzeige

    hallo,
    mal ne doofe frage, hab ein prog geschrieben, das bytes übers UART empfängt.
    jetzt ist es aber so, wenn der sender nicht verbunden ist, dass der mc solange wartet bis er seine bytes empfängt. ist es nicht möglich eine art time out mit einzubauen, so das er z.b. wenn er 5s lang nichts empfängt einen fehler ans lcd sendet?

    gruß

    xeus

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Was hälst du davon, den Empfäng Interruptgesteuert zu gestalten? Dann 'unterbricht' das Programm nur wenn auch wirklich Daten kommen. So brauchst du kein Timeout.

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.07.2004
    Ort
    Regensburg
    Alter
    33
    Beiträge
    366
    mein prog geht ja davon aus, wenn es eine anfrage sendet auch direkt darauf antwort zu bekommen. deswegen bräucht ich irgendeine routine die bei nichtempfang die sub neustartet

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Die Zeit, in der eine Antwort kommt ist ja in etwa voraussehbar.
    Du kannst ja nach dem PRINT eine Pause einlegen und den Empfang per Interrupt machen. In der ISR kannst du ja ein Bit setzen, wenn was empfangen wurde.
    Nach der eingelegten Pause, die ja evtl durch den INT unterbrochen wurde kannst du ja das Bit auswerten und siehst, ob Daten empfangen wurden.
    Wenn ja, dann mit den daten machen, was mit ihnen zu machen ist.
    Wenn nein, dann LOOP

    Oder von Anfang an LOOP UNTIL STATUSBIT = 1
    Wenn es nicht 1 ist, wird weiterhin gesendet und eine Pause gemacht bis das Bit 1 ist.
    Wenn es dann 1 ist, wird Do LOOP sowieso verlassen und der Code ausgeführt, der danach kommt. Und das könnte dann der Code sein, der die Empfangenen Daten verarbeitet.
    Und in der Schleife kannst du noch einen Zähler einbauen, um z.B. maximal 10 mal zu versuchen was zu senden/empfangen.

    Ich hoffe du kannst in etwa nachvollziehen, was ich meinte.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •