Forum: Mikrocontroller und Digitale Elektronik Initialisierung verhindert Interrupt


von Carl S. (nebur)


Lesenswert?

Hey,
ich programmiere mit Code Composer Studio v5, einen MSP430F6638. Ich 
will mit einem Timer einen Interrupt auslösen und in der ISR eine 
Messung vornehmen. Das Problem ist das eine Initialisierung die ich für 
die Messung benötige verhindert dass der Interrupt ausglöst wird. Wenn 
ich diese auskommentiere funktioniert es einwandfrei:

Die Initialiserung
1
void I2C_init(unsigned char Slave, unsigned char Prescale) {
2
  P8SEL |= SCL+SDA;                          // Assign I2C pins to USCI_B1
3
  P8DIR |= SCL+SDA;
4
  UCB1CTL1 |= UCSWRST;                        // Enable SW reset
5
  UCB1CTL0 = UCMST + UCMODE_3 + UCSYNC;       // I2C Master, synchronous mode
6
  UCB1CTL1 |= UCSSEL_2;                  // Use SMCLK, keep SW reset
7
  UCB1BR0 = Prescale;                         // fSCL = SMCLK/10 = 100kHz (only if SMCLK=1MHz, DCO as Source)
8
  UCB1BR1 = 0;
9
  UCB1CTL0 &= ~UCSLA10;                       // Set slave address 7 bits
10
  UCB1I2CSA = Slave;                          // Set slave address
11
  UCB1CTL1 &= ~UCSWRST;                       // Clear SW reset, resume operation
12
  UCB1IE |= 0x3FFF;                      // Enable RX + TX + all other interrupt
13
  UCB1IFG = UCTXIFG;
14
}

Der Timerinterrupt:
1
  TA1CCTL0 = CCIE;                          // CCR0 interrupt enabled
2
  TA1CCR0 = 50000;
3
  TA1CTL = TASSEL_2 + MC_1 + TACLR;         // SMCLK, upmode, clear TAR
4
5
__bis_SR_register(LPM0_bits + GIE);       // Enter LPM0, enable interrupts
6
 
7
  // Timer1 A0 interrupt service routine
8
  #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
9
  #pragma vector=TIMER1_A0_VECTOR
10
  __interrupt void TIMER1_A0_ISR(void)
11
  #elif defined(__GNUC__)
12
  void __attribute__ ((interrupt(TIMER1_A0_VECTOR))) TIMER1_A0_ISR (void)
13
  #else
14
  #error Compiler not supported!
15
  #endif
16
  {
17
    P1OUT ^= 0x01;
18
  }

liegt das vllt irgenwie daran dass beide auf den SMCLK zugreifen 
wollen_??

: Bearbeitet durch User
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
Noch kein Account? Hier anmelden.