Gast
#2783541
Hallo zusammen, ich habe hier ein kleines Problem mit meinem MSP430F1611: Ich möchte einen Port-Pin (genauer: P1.5, Pin 17 beim MSP430F1611) auf Änderungen hin überwachen. Bei einer fallenden Flanke soll in die ISR vom Timer_A0 gesprungen werden. Minimaler Code um den Fehler zu reproduzieren:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
Das seltsame ist: Wenn ich statt P1.5 den Pin P1.1 als TA0 einstelle (also den mit (*) gekennzeichneten Code einkommentiere) funktioniert alles problemlos (d.h. die ISR wird angesprungen und alles ist so wie es sein sollte). Einen Hardwaredefekt kann ich ausschliessen, da meine fallende Flanke garantiert am Pin P1.5 anliegt (mit Oszi nachgemessen). Die Falnek liegen auch lange genug an (mehrere 100ms), so dass hier eigentlich mehr als genug Zeit für den MSP430 bleibt um die Änderung zu registrieren. Ich bin hier gerade ein wenig verwirrt. Ich habe das Datenblatt so verstanden, dass ich über eine "1" an der entsprechenden Stelle des P1SEL-registers auswählen kann, welchen Port-pin ich gerne als TA0-Quelle haben möchte. Laut Datenblatt kommen dazu beim MSP430F1611 die Pins P1.1 (Pin 13) und P1.5 (Pin 17) in Frage. Meine Frage: Was läuft hier Falsch? Warum funktioniert denn das nur mit P1.1 als TA0? Neugierige Grüsse DanDanger