Part Number: MSP430FR5994
Tool/software: Code Composer Studio
SO I AM TRYING TO LEARN HOW TO USE THE TIMERS ON THE MSP430FR5994 FOR INTERRUPTS HOWEVER I HAVE TRIED SETTING UP THE TIMER TO USE THE ACLK AND SET THE CSKEY IN THE CSCTLO REGISTER TO THE CSKEY THE USER GUIDE SAYS MUST BE SET BUT WHEN EVER WRITE EITHER CSCTLO_H = CSKEY_H OR = 0x96 or FULL BINARY THE BUILD FAILS EVERY TIME AT THIS LINE. ALSO DID THE CODE WITHOUT SETTING BUT THE CLK AT THE TOP AND IT WILL BUILD AND RUN BUT THE TIMER IS NEVER INITIALIZED AND NEVER BEGINS COUNTING UP. CAN SOMEONE EXPLAIN OR SPOT MY ERROR PLEASE AND THANK YOU BELOW IS MY CURRENT CODE.
```
#include "msp430.h"
#include <stdbool.h>
#define COUNTER_VALUE 1250
int main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
PM5CTL0 &= ~LOCKLPM5;
//establish what the clk source will be
CSCTLO_H = 0xA5;
CSCTL2 |= SELA__VLOCLK;
CSCTLO_H = 0;
//set up and enable timer A or TA0 for UP mode
TA0CCTL0 = CCIE;
TA0CCR0 = COUNTER_VALUE;
TA0CTL = TASSEL__ACLK + MC__UP + ID__8;
TA0CTL |= TAIE;
_BIS_SR(GIE); //ENABLE GLOBAL INTERRRUPTS
//set the max period for 16bit timer operation
//set up capare mode CAP = 0 CLLD = 00 for immediate data transfer from TBXCCRn TO TBxCLn
while(true){
//KEEP THE PROGRAM RUNNING WHILE WAITING FOR LEDS TO BLINK
}
}
void __attribute__ ((interrupt(TIMER0_A0_VECTOR))) TIMER_A(void){
P1OUT ^= BIT0 + BIT1; //TOGGLE THE LED PINS
TA0CTL |= TACLR; // CLEARING THE TIMER TO RESTART THE COUNT AFTER EACH TOGGLE
}
```