Datum: 26.03.2008 09:54
Hallo!
Ich habe ein MSP430-149 auf einem Olimex-Developer-Board (zudem im
Einsatz mspgcc). Das Beispiel von mathar.com unter Verwendung von
Interrupts funktioniert bei mir. Nun möchte ich ein einzelnes Zeichen
ausgeben - sobald ich aber "SendUSART0c('x')" absetzen will bleibt die
Abarbeitung hängen.
Wo liegt mein Fehler?
Danke im Vorraus
Harry
Datum: 26.03.2008 10:03
Du hast die Interrupts (RX und TX) noch aktiviert. Insbesondere der TX-IRQ "bricht Dir das Genick", weil die ISR angesprungen wird und dabei UTXIFG0 zurückgesetzt wird. Deshalb wird
while (!(IFG1 & UTXIFG0));
|
zu einer Endlosschleife!
Datum: 26.03.2008 10:17
Okay, so etwas in die Richtung dachte ich mir schon. Aber wie komme ich denn sonst zu meinem Ziel? Verzichte ich auf die Aktivierung der Interrupts oder auf
while (!(IFG1 & UTXIFG0));" |
wird dennoch das Char nicht gesendet. Danke schonmal.
Datum: 26.03.2008 10:59
Ist der Uhrenquarz dran? Wo sendest du überhaupt hin? zum PC? Ist da der MAX3232 richtig angeschlossen? Wie merkst du, dass nix gesendet wird?
Datum: 26.03.2008 11:14
Ah, ich bin bedeutend weiter. Ich bekomme endlich meine Zeichenkette ausgegeben. Allerdings muss ich händisch warten. Wie kann ich denn etwas geschickter abwarten (Flag-Abfrage?) bis mein Char verschickt ist?
Datum: 26.03.2008 11:41
>Allerdings muss ich händisch warten. Wie kann ich denn etwas >geschickter abwarten (Flag-Abfrage?) bis mein Char verschickt ist? Na so wie's vorher war:
while (!(IFG1 & UTXIFG0));
|
Du musst halt die IRQ's deaktivieren, die benutzt Du doch eh nicht!
Datum: 26.03.2008 12:08
Du hast doch immer noch den TX-Interrupt drin. Schreibfehler? Nimmer mal die Zeile, in der IE1 beschrieben wird, komplett raus, dann klappts auch.
Datum: 26.03.2008 12:42
Perfekt, war der Meinung das schon einmal so gemacht zu haben, aber Hauptsache es funktioniert jetzt :) Interrupt-Flag raus, while wieder rein. Dankeschööön!
Antwort schreiben
Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
- Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
- Aussagekräftigen Betreff wählen
- Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
- Groß- und Kleinschreibung verwenden
- Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
- JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
- Schaltpläne, Screenshots usw. als PNG oder GIF anhängen
Formatierung (mehr Informationen...)
- [c]C-Code[/c]
- [avrasm]AVR-Assembler-Code[/avrasm]
- [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
- [math]Formel in LaTeX-Syntax[/math]
- [[Titel]] - Link zu Artikel