Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <msp430.h>
- /**
- * main.c
- */
- int main(void)
- {
- WDTCTL = WDTPW + WDTHOLD; // stop watchdog timer
- //step 1. to 3.
- UCSCTL3 = SELREF__REFOCLK; /*1.p1 set FLL ref to REF0CLK */
- UCSCTL4 |= SELA__REFOCLK; /*2.p1 Set ACLK = REFOCLK */
- UCSCTL0 = 0x0000; /*3.p1 set lowest DCOx and MODx bits */
- do
- {
- //step 4. and 5.
- UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG); /*4.p1 Clear XT2,XT1,DCO fault flags */
- SFRIFG1 &= ~OFIFG; /*5.p1 Clear fault flags */
- }while(SFRIFG1&OFIFG); /*6.p1 test the oscillator fault flag */
- __bis_SR_register(SCG0); //disable the FLL control loop
- //step 7. and 8.
- UCSCTL1 = DCORSEL_6; /*7.p1 set DCO Multiplier for 8MHz*/
- UCSCTL2 &= 0xFE00;
- UCSCTL2 |= 0xF3; /*8.p1 Set DCO Multiplier for 8MHz */
- // (N + 1) * FLLRef = Fdco
- // (243 + 1) * 32768 = 8MHz
- __bic_SR_register(SCG0); //enable the FLL control loop
- __delay_cycles(250000); //settling time for the DCO
- //step 9.p1
- P7DIR |= BIT7; /*9.p1 P7.7 = toggle */
- P7SEL |= BIT7;
- //Steps 1. to 4.
- TA0CCTL0 = CCIE; /*1.p2 allow interrupt activate CCIE flag */
- TA0CCR0 = 1600 - 1 ; /*2.p2 set up TA0CCR0 to the value it activate */
- TA0CTL = TASSEL_2 + MC_1 + TACLR ;//+ ID_1; /*3.p2 SMCLK in MC "up" mode, set TACLR flag (start timer) */
- P1DIR |= BIT0; /*4.p2 activate pin p1.0 and set it to output mode */
- P1OUT &= ~BIT0;
- __bis_SR_register(LPM0_bits + GIE);
- __no_operation();
- }
- #pragma vector = TIMER0_A0_VECTOR
- __interrupt void TIMER0_A0_ISR(void){
- P1OUT ^= BIT0; /*5.p2 Toggle the LED in the interrupt service routine */
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement