Blame | Last modification | View Log | Download | RSS feed
#include <msp430.h>int main(void) {WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer/* --- Set Oscillator Settings ---------------------- */BCSCTL1 = XT2OFF; // Turn off XT2 oscillator, ACLK = low freq mode/1BCSCTL1 = CALBC1_16MHZ; // Set DCO to callibrated 16MhzDCOCTL = CALDCO_16MHZ; // Set DCO to callibrated 16MhzBCSCTL2 = SELM_0 | DIVM_0 | DIVS_3; // MCLK = DCO/1, SMCLK = MCLK/8BCSCTL3 = LFXT1S_0 | XCAP_2; // LFXT1 = 32.768khz, 10pF terminationIE1 &= ~OFIE; // Disable oscillator fault interrupt/* -------------------------------------------------- */// /* --- Set Timer Settings --------------------------- */// // Timer A clock source = ACLK/1, continuous mode, interrupt enabled// TA0CTL = TASSEL_1 | ID_0 | MC_2 | TACLR | TAIE;// TACCTL0 = CCIE; // Enable timer A comparator 0 interrupt// TACCR0 = 32768; // Set initial comparator value// /* -------------------------------------------------- */UCB0CTL0 = UCMSB+UCMST+UCMODE_0; // 3-pin, 8-bit SPI masterUCB0CTL1 = UCSSEL_2+UCSWRST; // SMCLKUCB0BR0 = 2; // UCLK/2UCB0BR1 = 0;//UCB0MCTL = 0;P1SEL |= BIT5 + BIT6 + BIT7;P1SEL2 |= BIT5 + BIT6 + BIT7;P1OUT |= BIT5 + BIT6 + BIT7;P1DIR |= BIT5 + BIT7;P1DIR &= ~BIT6;UCB0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**// /* --- Set Port Settings ---------------------------- */// // Set port direction to output// P1DIR = BIT0 | BIT6;// // Set initial port values// P1OUT = ~(BIT0 | BIT6);// /* -------------------------------------------------- */// Go into low power mode with interrupts enabled// _BIS_SR(LPM1_bits + GIE);unsigned char c = 0;while (UC0IFG & UCB0TXIFG == 0); // wait while not ready for TXUCB0TXBUF = 0xAB; // writewhile (UC0IFG & UCB0RXIFG == 0); // wait for RX buffer (full)c = UCB0RXBUF;while(1);}//#pragma vector=TIMER0_A0_VECTOR//__interrupt void Timer0_A0(void) {// // This vector gets called on timer A comparator 0 interrupt// P1OUT ^= BIT0; // Toggle LED// TACCR0 += 32768; // Add offset to CCR0// TACCTL0 &= ~CCIFG; // Reset the interrupt flag//}//#pragma vector=TIMER0_A1_VECTOR//__interrupt void Timer0_A1(void) {// // This vector gets called on timer A overflow and comparators 1 and 2// P1OUT ^= BIT6; // Toggle LED// TACTL &= ~TAIFG; // Reset the interrupt flag//}