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
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.
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
Sorry für den Doppelpost: Wenn ich TXBFU0 eingebe, kann ich schon etwas an meinem Hyperterminal erkennen, nur sind es bis jetzt nur Smilys.
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
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.
Danke, ich habs hingebracht. Herzlichen Dank für die Hlfe
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.