#include volatile char received_ch = 0; int main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT // P1OUT |= BIT5; // P1DIR |= BIT5; P1SEL = BIT5 | BIT6 | BIT7; P1SEL2 = BIT5 | BIT6 | BIT7; UCB0CTL1 = UCSWRST; UCB0CTL0 |= UCCKPH + UCMSB + UCMST + UCSYNC; // 3-pin, 8-bit SPI master UCB0CTL1 |= UCSSEL_2; // SMCLK UCB0BR0 |= 0x02; // /2 UCB0BR1 = 0; // // UCB0MCTL = 0; // No modulation UCB0CTL1 &= ~UCSWRST; // **Initialize USCI state machine** P1OUT &= (~BIT5); // Select Device // while(1){ while (!(IFG2 & UCB0TXIFG)); // USCI_A0 TX buffer ready? UCB0TXBUF = 0xAA; // Send 0xAA over SPI to Slave while (!(IFG2 & UCB0TXIFG)); // USCI_A0 TX buffer ready? UCB0TXBUF = 0x0F; // Send 0xAA over SPI to Slave __delay_cycles(10000); // } while (!(IFG2 & UCB0RXIFG)); // USCI_A0 RX Received? received_ch = UCB0RXBUF; // Store received data P1OUT |= (BIT5); // Unselect Device }