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

📄 mainsend.c

📁 基于TI公司的CC1020芯片的无线通讯程序,程序的MCU是TI公司的MSP430系列。
💻 C
字号:
#include "global.h"
#include "cc1020.h"
#include "msp430x14x.h" 


//**************
#define TIMES 32768
char send_cb_buf [36];
char cross_buf[36];
char BchLeng;

int temp,i;
//int *p=&temp;
char rx_cb_buf[36]; 
char rx_cb_length;
char rx_buf[36]; 
char rx_length;

char BCnt;
char ByCnt;
char aBitCnt;
char Bank[6][32];
//*****************
int BUFFER;
char SPI_TX_OK,SPI_RX_OK;
char TX_BUF[36] = {0x55,0xD3,0x91};
char RX_BUF[32];
char BUFF_FULL,BYTE_CNT,BIT_CNT,RF_DIR,RF_OK,PACKAGE_LEN,TIME_FLAG;
const char FREQ[16][6] = {0x39,0xFA,0xB8,0x39,0xF0,0x0D,
                          0x3A,0x01,0xAA,0x39,0xF6,0xFF,
                          0x3A,0x08,0x9B,0x39,0xFD,0xF1,
                          0x3A,0x0F,0x8D,0x3A,0x04,0xE3,
                          0x3A,0x16,0x7F,0x3A,0x0B,0xD4,
                          0x3A,0x1D,0x71,0x3A,0x12,0xC6,
                          0x3A,0x24,0x63,0x3A,0x19,0xB8,
                          0x3A,0x2B,0x54,0x3A,0x20,0xAA,
                          0x3A,0x32,0x46,0x3A,0x27,0x9B,
                          0x3A,0x39,0x38,0x3A,0x2E,0x8D,
                          0x3A,0x40,0x2A,0x3A,0x35,0x7F,
                          0x3A,0x47,0x1B,0x3A,0x3C,0x71,
                          0x3A,0x4E,0x0D,0x3A,0x43,0x63,
                          0x3A,0x54,0xFF,0x3A,0x4A,0x54,
                          0x3A,0x5B,0xF1,0x3A,0x51,0x46,
                          0x3A,0x62,0xE3,0x3A,0x58,0x38
                         }; 
//**************
const char ch[12]={0x55,0xD3,0x91,0x08,0x01,0x02,
                   0x03,0x03,0x05,0x06,0x07,0x08
                };
char ch_bch[]={0x55,0xD3,0x91,0x08,0x01,0x02,
              0x03,0x03,0x05
                };   
void Init_TimerB(void)
{
  TBCTL=TBSSEL_1+TBCLR+MC_0;  //选择时钟源ACLK, 清除TAR,增计数方式
 // TBCCTL0=CCIE;               //允许定时器中断
}                
                             
//**************                 
void main()
{
   int freq_num = 0;
  char buff[32] = {0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF};
  //char buff[32] = {0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00};
  
   WDTCTL = WDTPW + WDTHOLD;          // stop watch dog
   clk_init();
   timea_init(5120);// 512 大概
   //88888
    Init_TimerB(); 
    TBCCR0=TIMES;           //设置定时时间TimerB
  TBCTL |= MC_1 +TBCLR; 
  //8888  //  打开定时器 
   spi_init();
   _EINT();   
   reset_cc1020();   
   cc1020_init();
   delay(100);
   if(verify_cc1020())
   {
      return;
   }
   cali_pll();   
   port_init();
   ////////////////////////////////
   
   set_freq(5);  
   cc1020_tx();
   
   while(1)
   {
//时间中断,每16毫秒跳一次频
      if(TIME_FLAG)
      {
         TIME_FLAG = 0;
         
         if(BUFF_FULL == 0)
         {
     /*        TBCTL |= MC_2 +TBCLR;
             TBCTL&=~CNTL1;
                   for(i=0;i<16;i++)
                   {      
                             if(*(Bank[BCnt]+ByCnt) & (0x01>>(7-aBitCnt)))
                                {
                                          temp&=0x8000;         // ouput "1"
                                }
                                
                                ByCnt+=4;
                               
                                if(ByCnt>31)
                                {   
                                    ByCnt=0;
                                    aBitCnt++;
                                    if(aBitCnt==8)
                                    {  
                                       aBitCnt=0;
                                       if(ByCnt==35)
                                       {
                                          ByCnt=0;
                                          BCnt++;
                                       } 
                                       else
                                          ByCnt-=31;
                                    }
                                    
                                }
                                
                            temp=temp<<1;
  
        }
       
        
       
      
      }   
      TBCTL &=~MC_2;
   */ 
         BchLeng=bch_to_send(buff,32,send_cb_buf);
         cross16(send_cb_buf,BchLeng,cross_buf);
         pakging(BchLeng, send_cb_buf);
    }
      

   }
}

}
void delay(int times)
{
   int i;
   for(i=0;i<times;i++)
   {
      asm(" nop");
      asm(" nop");
   }
}  

⌨️ 快捷键说明

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