msp430_ctrl.c

来自「基于TI公司的CC1020芯片的无线通讯程序,程序的MCU是TI公司的MSP43」· C语言 代码 · 共 86 行

C
86
字号
#include "global.h"
#include "cc1020.h"
#include "msp430x14x.h" 

void clk_init(void)
{
//   DCOCTL = //DCO0+DCO1+DCO2;
   BCSCTL1 = XT2OFF+RSEL2+RSEL1+RSEL0;
   BCSCTL2 = DIVS_3;
}

void spi_init(void)
{
   UCTL0 &= ~SWRST;
   U0CTL = CHAR+SYNC+MM; 
   U0TCTL = STC+SSEL0+SSEL1;
   U0BR0 = BIT0+BIT1;
   U0BR1 = 0x0;
   U0MCTL = 0x0;
   ME1 |= USPIE0;   
   IE1 |= UTXIE0;
   IE1 |= URXIE0;
   
   P3SEL |= BIT0+BIT1+BIT2+BIT3;     //0x0F
   P3DIR |= BIT1+BIT3;               //0x0A;
   
   P4OUT |= BIT6;
   P4SEL = 0;
   P4DIR |= BIT6;
}

void port_init(void)
{
   P2IES |= BIT2;
   P2IE |= BIT2;
   P6DIR |= BIT0+BIT1;
   P2DIR &= ~BIT3;
}

void spi_wr(char addr,char data)
{
   char txbuf;
   
   txbuf = addr << 1;
   txbuf |= BIT0;
   P4OUT &= ~BIT6;
   SPI_RX_OK = 0;
   SPI_TX_OK = 0;
   TXBUF0 = txbuf;
   while(!SPI_TX_OK);
   while(!SPI_RX_OK);
   SPI_TX_OK = 0;
   SPI_RX_OK = 0;
   TXBUF0 = data;
   while(!SPI_TX_OK);
   while(!SPI_RX_OK);
   delay(1);
   P4OUT |= BIT6;
}

char spi_rd(char addr)
{
   char txbuf;
   
   txbuf = addr << 1;
   txbuf &= ~BIT0;
   P4OUT &= ~BIT6;
   SPI_RX_OK = 0;
   SPI_TX_OK = 0;
   TXBUF0 = txbuf;
   while(!SPI_TX_OK);
   while(!SPI_RX_OK);
   SPI_RX_OK = 0;
   TXBUF0 = 0;
   while(!SPI_RX_OK);
   delay(1);
   P4OUT |= BIT6;
   return RXBUF0;
}

void timea_init(int interval)
{
   TACTL = TASSEL0|MC0|TAIE;
   TACCR0 = interval;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?