Hallo alle zusammen, als erstes möcht ich schreiben, dass ich noch blutiger Anfänger bin und mich in die Materie erst reinarbeite. Macht mir aber ne Menge Spass ;) Zu meinem Problem: Ich will einen Kartenleser für eine normale Chipkarte (Krankenkassenkarte) bauen und benutze einen MSP430F413 dafür. Ich programmiere in C. Die UART stellt mich vor einige Probleme. Habe also erstmal versucht mit einer einfachen "Hallo Welt" Programmierung über die serielle Schnittstelle etwas auf dem Schirm zu sehen. Laut Datenblatt kann ich dazu die Register UxRXBUFx und UxTXBUFx als Buffer zur Ausgabe benutzen (oder doch falsch verstanden?). Diese Register erkennt aber mein Compiler nicht an und gibt mir Fehler aus, weil er diese nicht kennt. Wie muß ich die vorher definieren? Oder ist meine <msp430x41x.h> einfach nur fehlerhaft oder nicht vollständig? Dachte nämlich, dass ein Register nicht def. wird und einfach anwählbar ist. Bei anderen Beispielen hab ich die Bezeichnung UDR als Register gefunden, hat mir aber auch nicht weitergeholfen. Freu mich auf eure Antworten. Danke
Die genaue Registerbezeichnung lautet: U0RXBUF = UART 0 Empfangsregister (RX) U0TXBUF = UART 0 Senderegister (TX) U1RXBUF = UART 1 Empfangsregister U1TXBUF = UART 1 Senderegister usw. Also im RX Register steht das empfangene Byte und mit dem TX Register kannst du Bytes senden. Von TI gibt es aber eine sehr gute Application Note zu dem Thema. Schau dir die mal an, dann sollte das meiste klar sein.
Hi, erst mal ein dickes Danke für die schnelle Antwort. Die Registerbezeichnung hatte ich so in der Richtung schon verstanden, aber wenn ich das Register so eingebe U0TXBUF = answer1 [i++] ( als Beispiel) sagt der Compiler mir 'U0TXBUF' wäre undeklariert. Ich habe mich an den Beispiele unter ti und unter www.mathar.com orientiert. Bei mathar gibt es eine sehr gute Erläuterung für ein solches Eingabe a,b,c Programm. Nur benutzen die auch dieses Register und bei mir erscheint die Fehlermeldung. Vielleicht noch ein Idee was ich falsch mache ?
Hallo Torsten, schau doch einfach mal in dem Header File für deinen Controller ob die Buffer dort unter einem anderen (ähnlichen) Namen vorkommen. Oft gibt es dort Unterschiede. Grüße, Patrick
Hallo nochmal, so hab den Fehler gefunden. Hab dann mal wirklich in der Headerdatei geschaut. Die msp430/usart.h war zwar vorhanden aber nicht in der Controller Head Datei eingefügt. Vielen Dank an alle die mitgedacht haben ;) freu freu
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.