Hi Leute, Nachdem ich meinen UART nun zum laufen bekommen habe, würde ich gerne 3byte aufnehmen und wieder ausgehen. Das Signal ist asynchron, 31.250 KBaud, 8N1. Über einen Interrupt bekomme ich das erste Byte rein und kann es auch wieder ausgeben. Frage: wie lese ich die darauffolgenden Bytes aus??(habe versucht ein array zu füllen, nur das erste byte wurde reingeschrieben) Ich suche auch ein bespiel in dem über den UART mehrer vorher definierte Byte mit einer bestimmten Bautrate ausgegeben werden,, bin für jeden Tip echt dankbar
Welcher µC? Welche Sprache? Wie sieht's mit Code aus? ... So kann man nur raten! Eventuell musst du nach dem Lesen des ersten Bytes ein Flag löschen, damit beim nächsten Byte wieder ein Interrupt kommt.
Beim AVR wird nach einem komplett empfangenem Byte ein RX-Complete Interrupt ausgelöst, wenn er aktiviert ist. In der Interrupt-Service-Routine holt man dann das Byte vom U(S)ART ab. Wird ein weiteres Byte empfangen, geht das Spiel von vorn los. Man muß in der ISR also nur entscheiden, wo man das empfangene Byte hinschreibt -> indirekte Adressierung über Zeiger (X-Y-Z-Register).
Danke erstmal für die schnellen Antworten, Ich benutzte: MSP430F1232 (8Mhz-external), programmiere in C. Die Zuweisung der empfangenen Bytes in ein Array funktioniert also nicht...?? siehe Dateianhang.. Danke Mark für das Beispiel,, mache mich gleich mal drüber Grüsse
Hab da noch ein paar warnings debugt. (AVR Studio) Da der Beipielcode von einem Atmega8 ist, wirst du einige Registernamen austauschen müssen. MfG
HI ich habe versucht den Quelltext von Mark auf den MSP umzumünzen, aber irgendwie haut´s nicht hin.. das prinzip ist klar.. warum meckert mein Compiler bei "memset"???
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.