Hallo Forum, ich arbeite momentan mit einem ATmega16 und erarbeite mir gerade die UART Schnittstelle. Kann ich Telegramme empfangen, die länger sind als 255 Zeichen? Bzw. kann ich ein Chararray anlegen, was größer ist als 255? Wie groß ist der UDR Puffer, in welchem die Zeichen bis zur Abarbeitung zwischen gespeichert werden? Grüße
Lorenz schrieb: > Hallo Forum, Hallo Lorenz > ich arbeite momentan mit einem ATmega16 und erarbeite mir gerade die > UART Schnittstelle. Der UART ist ein ganzer Abschnitt im Datenblatt des Atmega16 gewidmet. Hast du dir das schonmal angeschaut? > Kann ich Telegramme empfangen, die länger sind als 255 Zeichen? Aber natürlich. > Bzw. kann ich ein Chararray anlegen, was größer ist als 255? Kommt darauf an, wie viel RAM du noch frei hast, falls du beabsichtigst die Daten dort abzulegen, z.B. weil die Telegramme live zusammen gesetzt werden. Alternativ kann man die Daten auch im Flash ablegen, dann sind sie aber zur Laufzeit nicht mehr schreibbar. > Wie groß ist der UDR Puffer, in welchem die Zeichen bis zur Abarbeitung > zwischen gespeichert werden? Steht im Datenblatt. Ich würde die wirklich raten, dich mit den paar Seiten zur UART mal zu beschäftigen. Wenn du dann etwas nicht verstehst bzw. findest kannst du immer noch Fragen. > Grüße Viel Erfolg! :)
> Kann ich Telegramme empfangen, die länger sind als 255 Zeichen Klar warum nicht ? Wo siehst du das Problem ? > Wie groß ist der UDR Puffer • A second Buffer Register has been added. The two Buffer Registers operate as a circular FIFO buffer. Therefore the UDR must only be read once for each incoming data! More important is the fact that the Error Flags (FE and DOR) and the 9th data bit (RXB8) are buffered with the data in the receive buffer. Therefore the status bits must always be read before the UDR Register is read. Otherwise the error status will be lost since the buffer state is lost. • The receiver Shift Register can now act as a third buffer level. This is done by allowing the received data to remain in the serial Shift Register (see Figure 69) if the Buffer Registers are full, until a new start bit is detected. The USART is therefore more resistant to Data OverRun (DOR) error conditions.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.