www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP430 von zb Port1 auf Serielle Schnittstelle


Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
kann mir jemand einen Tipp geben, wie ich beim MSP430
von einem belieben Port, zb. P1 die Signale auf meine serielle 
Schnittstelle geben kann?
Ich möchte nämlich versuchen, die Signale auf meinen Computer 
darzustellen, doch ich hab im Forum noch nichts passendes finden können.
Wahrscheinlich ist dieses Thema schon einmal vorgekommen, doch kann ich 
es nicht finden.

Danke im Vorraus

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zuerst mal die serielle Schnittstelle einrichten, wie das geht, steht in 
den C-Demos von TI.

Dann einfach mit UTXBUF0 = P1IN; den wert des Port 1 auf den TX Buffer 
schicken und schon wird er an den Serialport geschrieben

So wie deine Frage allerdings gestellt ist, hast du noch nicht mal die 
Kommunikation zwischen PC und MSP430 überhaupt eingerichtet....schätze 
ich mal.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann sein, ich habe das so gemacht:

  ME1 |= UTXE0 + URXE0;
  UCTL0 |= CHAR;
  UTCTL0 |= SSEL0;
  UBR00 = 0x03;
  UBR10 = 0x00;
  UMCTL0 = 0x4A;
  IE1 |= URXIE0 + UTXIE0;
  IFG1 &= ~UTXIFG0;


Ich bin mir aber nicht sicher, denn diese Einstellung habe ich von einem 
Beispiel Pogramm, mit welchem man anzeigen lassen kann, welche Taste man 
drückt.


Danke für die Lösung, doch habe ich anscheinend UTXBFU0 nicht definiert
==> Wie kann ich dann die Kommunikation einrichten???

Danke

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry für den Doppelpost:


Wenn ich TXBFU0 eingebe, kann ich schon etwas an meinem Hyperterminal 
erkennen, nur sind es bis jetzt nur Smilys.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie oben erwähnt, erhalte ich nun ein Signal
Nun hab ich noch etwas komplexeres:
Ich habe nämlich bei meinem Signal high und low, und möchte immer, wenn 
das Signal wechselt, ein Zeichen, oder so etwas ähnliches auf meinem PC 
ausgeben, doch hab ich in diesem Fall leider keinen Plan, wie ich es 
angehen sollte.

Danke wieder einmal im Vorraus

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dazu musst du eine Interrupt Service Routine schreiben, die den Port 
Interrupt auswertet.

Mit P1IE = 0xFF gibst du alle Pins an port 1 für Interrupts frei.
Über P1IES kannst du die Richtung der Flanke einstellen, auf die das 
Programm reagieren soll. 0 an der entsprechenden Bit-Position bedeutet 
steigende Flanke, 1 fallende Flanke.

Dann musst du noch global die Interrupts freigeben, mit EINT();

Und eine ISR schreiben. Wie die aussieht, hängt von deinem Compiler ab.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, ich habs hingebracht.

Herzlichen Dank für die Hlfe

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.