Forum: Mikrocontroller und Digitale Elektronik UART LPC


von Lutz (Gast)


Lesenswert?

mein Problem ist einfach beschrieben: innerhalb des Webservers von
FreeRTOS habe ich eine serielle Kommunikation eingebaut. Die sendet und
die Gegenstelle antwortet.  Das funktioniert auch wunderbar. Nur die
Auswertung: Na ja...
Da ich weiß wie viele Zeichen als Antwort kommen ruf ich folgende
Routine eben x mal auf wobei x die Anzahl der Zeichen sind.

void UART1Read_String(void)
{
     while ( (UART1_LSR & 0x01) == 0);
      {
        HART_Buffer_bin[Telegrammelement] = UART1_RBR;
        Telegrammelement++;
      }
   }
}

Da die ersten Zeichen nur zur synchronisation diesen überprüf ich deren
Anzahl(erstes Zeichen nach der Synchronisation 0x86):
x= 0;
                while (HART_Buffer_bin[x++] != 0x86);{}
                Header = x;

dannach schiebe ich eben um diese Anzahl verschoben:
  speicher1[y]=Buffer_bin[y + Header];

und schon habe ich nur noch den Teil mit Informationen.

Nun mein Problem:
Dieses lass ich regelmäßig durchlaufen und beim ersten mal geht es auch
gut. Die Informationen die für mich interessant sind lege ich in einem
neunen Vector ab um sie so dauerhaft zwischen zu speichern bis ein
neuer Messwert kommt um den dann zu überschreiben. Jedoch werden die
neunen Messwerte bei Durchläufen nicht mehr korrekt abgelegt sondern
dann einfach mit 0x00 gefüllt. Ds schieben funktioniert dann auch das
habe ich mit dem hyperterminal überprüft indem ich mir speicher1 aus
gegeben habe. Jedoch wenn ich mir Buffer_bin zum Terminal Programm
schicken lasse sind die erssten ZEichen schon nciht mehr die zu
synchronisation obwohl ich  Telegrammelement=0; setzt vor dem aufruf
der leseroutine.

Ich hoffe das war nicht zu viel und auch noch verständlich.
Ausserdem hoffe ich das ihr mir ein Tip geben könnt warum das einlesen
nicht so klappt wie es sollte.

Grüße an alle
lutz

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.