⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 该压缩包是用msp430单片机开发板和射频芯片CC2500制成的无线传感器网络节点的接收信息过程的源程序代码
💻 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 + -