[MSP430]: TimerA capture mode: ISR wird auf P1.1 aufgerufen, auf P1.5 nicht

Gast #2783541
Lesenswert?
• ▲
▼
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
main_isr
3
***********************/
4
INTERRUPT_HANDLER(main_isr, TIMERA0_VECTOR)
5
{
6
  P5OUT ^= BIT0;
7
}
8

9
/***********************
10
main
11
***********************/
12
void main(void)
13
{
14
  // (Initialisierung von Clock, Watchdog & Co.) (...)
15

16
  P1DIR = 0x00;
17
  P1SEL = BIT5;   // P1.5 configured as TA0
18
  //P1SEL = BIT1; // (*) P1.1 configured as TA0
19

20
  // Falling edge + CCI0A + Capture Mode + Interrupt 
21
  TACCTL0 = CM_2 + SCS + CCIS_0 + CAP + CCIE; 
22

23
  // ACLK + Continuous Mode
24
  TACTL = TASSEL_1 + MC_2;
25
  __enable_interrupt();
26
  while(1)
27
  {
28
      // Busy wait
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

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.