📄 main.c
字号:
//----------------------------------------------------------------------------
// 449 CC2500发送演示程序
//
// 接收程序
//
// www.mcu-china.com
//----------------------------------------------------------------------------
#include "include.h"
const char distab[]=
{
0xaf,0x06,0x6d,0x4f,
0xc6,0xcb,0xeb,0x0e,
0xef,0xcf, 0xee,0xe3,
0x61,0x67,0xe9,0xe8
} ;
uchar addr_no = 8 ; //
extern char paTable[];
extern char paTableLen;
char txBuffer[4];
char rxBuffer[4];
unsigned int i;
unsigned int adc;
char time_con = 0 ;
void delay(uint x) // 5*x+12 nop
{ //128- 23 256-49
while(x--);
} //192- 36 280- 54 448- 87
void main (void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
CCTL0 = CCIE; // CCR0 interrupt enabled
CCR0 = 32768;
TACTL = TASSEL_1 + MC_2; // ACLK, continuous mode
LCDCTL = 0XFD;
BTCTL = BTFRFQ1; // STK LCD freq
P5SEL = 0xFC; // Common and Rxx all selected
for(i=0;i<20;i++)
LCDMEM[i] = 0 ;
LCDMEM[6] = distab[addr_no];
LCDMEM[5] = 0;
LCDMEM[7] = 0x44; //显示 TX
LCDMEM[10] = 0x80; //显示RF
LCDMEM[11] = 0x3e;
LCDMEM[12] = 0x53;
LCDMEM[13] = 0x00;
TI_CC_SPISetup(); // Initialize SPI port
TI_CC_PowerupResetCCxxxx(); // Reset CCxxxx
writeRFSettings(); // Write RF settings to config reg
TI_CC_SPIWriteBurstReg(TI_CCxxx0_PATABLE, paTable, paTableLen);//Write PATABLE
TI_CC_GDO0_PxIES |= TI_CC_GDO0_PIN; // Int on falling edge (end of pkt)
TI_CC_GDO0_PxIFG &= ~TI_CC_GDO0_PIN; // Clear flag
TI_CC_GDO0_PxIE |= TI_CC_GDO0_PIN; // Enable int on end of packet
P6OUT |= BIT4 ;
// TI_CC_SPIStrobe(TI_CCxxx0_SPWD); // Initialize CCxxxx in RX mode.
TI_CC_SPIStrobe(TI_CCxxx0_SRX); // Initialize CCxxxx in RX mode.
_BIS_SR(LPM3_bits + GIE); // Enter LPM3, enable interrupts
}
// The ISR assumes the int came from the pin attached to GDO0 and therefore
// does not check the other seven inputs. Interprets this as a signal from
// CCxxxx indicating packet received.
#pragma vector=PORT2_VECTOR
__interrupt void port2_ISR (void)
{
char len= 56 ;
char i ;
int dc_adc1 ;
if(P2IFG & BIT4)
{
if (RFReceivePacket(rxBuffer,&len))
;
dc_adc1 = rxBuffer[2] ;
dc_adc1 = dc_adc1 << 8 ;
dc_adc1 = dc_adc1 + rxBuffer[3] ;
LCDMEM[6] = distab[rxBuffer[1] ] ;
LCDMEM[4] = 0 ;
LCDMEM[5] = 0 ;
for(i=0;i<4;i++)
{
LCDMEM[i]= distab[dc_adc1%10];
dc_adc1 = dc_adc1 / 10 ;
}
P2IFG &= ~TI_CC_GDO0_PIN; // Clear flag
}
}
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
CCR0 += 65535 ;
time_con ++ ;
TI_CC_SPISetup(); // Initialize SPI port
TI_CC_PowerupResetCCxxxx(); // Reset CCxxxx
writeRFSettings(); // Write RF settings to config reg
TI_CC_SPIWriteBurstReg(TI_CCxxx0_PATABLE, paTable, paTableLen);//Write PATABLE
TI_CC_GDO0_PxIES |= TI_CC_GDO0_PIN; // Int on falling edge (end of pkt)
TI_CC_GDO0_PxIFG &= ~TI_CC_GDO0_PIN; // Clear flag
TI_CC_GDO0_PxIE |= TI_CC_GDO0_PIN; // Enable int on end of packet
P6OUT |= BIT4 ;
// TI_CC_SPIStrobe(TI_CCxxx0_SPWD); // Initialize CCxxxx in RX mode.
TI_CC_SPIStrobe(TI_CCxxx0_SRX); // Initialize CCxxxx in RX mode.
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -