📄 test-cc2500.c
字号:
#include <msp430x16x.h>
#include "common.h"
unsigned char paTable_CC1100[8] = {0xc0, 0xc8, 0x84, 0x51, 0x3f, 0x34, 0x1c, 0x6c }; //CC1100发射功率表
unsigned char paTable_CC2500[8] = {0xFF, 0xFE, 0xBB, 0xA9, 0x7F, 0x6E, 0x97, 0xC5 }; //CC2500发射功率表
unsigned char txBuffer_CCxx00[0x21] = {0x02, 1, 1,1,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09}; //发射缓冲
// LENGTH,KEYCODE,FLAG,DATA0,DATA1.....
unsigned char rxBuffer_CCxx00[0x20]; //接收缓冲
//static BYTE dpybuffer[10]={0x11,0xF9,0x23,0x61,0xC9,0x45,0x05,0xF1,0x01,0x41};//数码管显示的数据:0,1,2,3,4,5,6,7,8,9
unsigned char TXBuffer[0x26]={0x55,0x55,0x55,0x55,0x55,0xCA,0x01,0x01}; //cc1000
unsigned char RXBuffer[0x20];
unsigned char status[2];
unsigned char systemerr,PacketLength,uart_data_ok,rx_buf;
unsigned char Rssi;
void main(void)
{
unsigned int i;
// unsigned char j;
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
BCSCTL1 &= ~XT2OFF; // XT2on
do
{
IFG1 &= ~OFIFG; // Clear OSCFault flag
for (i = 0xFF; i > 0; i--); // Time for flag to set
}
while ((IFG1 & OFIFG)); // OSCFault flag still set?
BCSCTL2 |= SELM_2 + SELS; // MCLK = SMCLK = XT2 (safe)
for(i=0;i<30;i++)
Software_delay(50000);
P1DIR =0xC4;
P1OUT =0x04;
//-------------------------------- 串口 1 设置程序19200 (RS485)-------------------------------------//
P3SEL |= 0x30; // P3.4,5 = USART0 TXD/RXD
ME1 |= UTXE0 + URXE0; // Enable USART0 TXD/RXD
UCTL0 |= CHAR; // 8-bit character
UTCTL0 |= SSEL1; // UCLK = SMCLK
UBR00 = 0xA1; // 8Mhz/19200 ~ 417
UBR10 = 0x01; //
UMCTL0 = 0x00; // no modulation
UCTL0 &= ~SWRST; // Initialize USART state machine
IE1 |= URXIE0; // Enable USART0 RX interrupt
//--------------------------------------------------------------------------------------------------//
for(i=0;i<30;i++)
Software_delay(50000);
SetupCC2500();
for(i=0;i<30;i++)
Software_delay(50000);
uart_data_ok=0;
_EINT();
while(1)
{
if(uart_data_ok)
{
txBuffer_CCxx00[1]=rx_buf;
txBuffer_CCxx00[2]=1;
TxCC2500(); //发射信息
uart_data_ok=0;
}
RXCC2500();
// for(j=0;j<10;j++)
// {
// txBuffer_CCxx00[1]=j;
// TxCC2500();
// for(i=0;i<80;i++)
// Software_delay(50000);
// }
}
}
#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx (void)
{
if(uart_data_ok==0)
{
rx_buf=RXBUF0;
uart_data_ok=1;
}
else
{
send_uart0_a_byte(0xee);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -