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

📄 cc1100_rx.lst

📁 CC1100射频电路的线路板和已经调通的源码
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   CC1100_RX                                                             11/15/2007 16:36:32 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE CC1100_RX
OBJECT MODULE PLACED IN CC1100_RX.OBJ
COMPILER INVOKED BY: C:\silabs\IDEfiles\C51\BIN\C51.exe CC1100_RX.c DB OE

line level    source

   1          //-----------------------------------------------------------------------------
   2          // CC1100.c
   3          //-----------------------------------------------------------------------------
   4          // Copyright (C) 2005 Silicon Laboratories, Inc.
   5          //
   6          // AUTH: JS
   7          // DATE: 03 JUL 02
   8          //
   9          // This program flashes the green LED on the C8051F31x target board about 
  10          // five times a second using the interrupt handler for Timer2.
  11          //
  12          // Target: C8051F31x
  13          //
  14          // Tool chain: KEIL Eval 'c'
  15          //
  16          
  17          //-----------------------------------------------------------------------------
  18          // Includes
  19          //-----------------------------------------------------------------------------
  20          #include <c8051f310.h>                    // SFR declarations
  21          #include <intrins.h>
  22          #include <string.h>
  23          #include "CC1100.h"
  24          
  25          
  26          #define         INT8U                           unsigned char
  27          #define         INT16U                          unsigned int
  28          
  29          
  30          
  31          
  32          #define         WRITE_BURST             0x40                                            //连续写入
  33          #define         READ_SINGLE             0x80                                            //读
  34          #define         READ_BURST              0xC0                                            //连续读
  35          #define         BYTES_IN_RXFIFO     0x7F                                                //接收缓冲区的有效字节数
  36          #define         CRC_OK              0x80                                                //CRC校验通过位标志
  37          
  38          
  39          
  40          //-----------------------------------------------------------------------------
  41          // 16-bit SFR Definitions for 'F30x
  42          //-----------------------------------------------------------------------------
  43          
  44          sfr16 TMR2RL   = 0xca;                    // Timer2 reload value
  45          sfr16 TMR2     = 0xcc;                    // Timer2 counter
  46          
  47          //-----------------------------------------------------------------------------
  48          // Global CONSTANTS
  49          //-----------------------------------------------------------------------------
  50          
  51          #define   SYSCLK       24500000             // SYSCLK frequency in Hz
  52                  
  53          #define   BAUDRATE                 9600
  54          
  55          
C51 COMPILER V8.02   CC1100_RX                                                             11/15/2007 16:36:32 PAGE 2   

  56          
  57          
  58          
  59          //--------------------------------------------------------------------------------------------------------
             ---
  60          
  61          //定义CC1100模块接口
  62          sbit    SCK           = P0^0;
  63          sbit    MISO      = P0^1;
  64          
  65          sbit    MOSI      = P0^6;
  66          sbit    GDO0      = P0^7;
  67          sbit    CS_CC1100 = P2^0;
  68          sbit    GDO2      = P2^1;
  69          
  70          
  71          //定义接口
  72          sbit    TX            = P0^4;
  73          sbit    RX            = P0^5;
  74          
  75          sbit    LED       = P3^3;                          // LED='0' means ON
  76          
  77          
  78          
  79          /****************************************************************************************
  80          //全局变量定义
  81          /****************************************************************************************/
  82          INT8U PaTabel[8] = {0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0};
  83          
  84          
  85          
  86          //-----------------------------------------------------------------------------
  87          // Function PROTOTYPES
  88          //-----------------------------------------------------------------------------
  89          void SYSCLK_Init (void);
  90          void PORT_Init (void);
  91          
  92          
  93          void UART0_Init(void);
  94          void SendCh(INT8U c);
  95          
  96          
  97          void  delay(unsigned int s);
  98          INT8U SpiReadWrite(INT8U dat);
  99          void  halSpiWriteReg(INT8U addr, INT8U value);
 100          void  halSpiWriteBurstReg(INT8U addr, INT8U *buffer, INT8U count);
 101          void  halSpiStrobe(INT8U strobe);
 102          INT8U halSpiReadReg(INT8U addr); 
 103          void  halSpiReadBurstReg(INT8U addr, INT8U *buffer, INT8U count);
 104          INT8U halSpiReadStatus(INT8U addr);
 105          
 106          
 107          
 108          void halWait(INT16U timeout);
 109          void RESET_CC1100(void);
 110          void POWER_UP_RESET_CC1100(void);
 111          void halRfWriteRfSettings(void);
 112          void Init_CC1100(void);
 113          
 114          
 115          
 116          
C51 COMPILER V8.02   CC1100_RX                                                             11/15/2007 16:36:32 PAGE 3   

 117          void  halRfSendPacket(INT8U *txBuffer,INT8U size);
 118          INT8U halRfReceivePacket(INT8U *rxBuffer,INT8U length); 
 119          
 120          //-----------------------------------------------------------------------------
 121          // MAIN Routine
 122          //-----------------------------------------------------------------------------
 123          void main (void) {
 124   1      
 125   1         // INT8U TT,TT1;
 126   1      //      INT8U arrTx[4];
 127   1              INT8U arrRx[4]={0x55,0x22,0x65,0x00};
 128   1         
 129   1      
 130   1          PCA0MD &= ~0x40;                       //disable watchdog timer
 131   1          PORT_Init();
 132   1          SYSCLK_Init();
 133   1              UART0_Init(); 
 134   1      
 135   1       // 
 136   1       //  TT1=SpiReadWrite(TT);
 137   1          Init_CC1100();
 138   1      
 139   1       
 140   1         //   LED = 0;
 141   1         //   
 142   1         //  SendCh(0x55);
 143   1        // halSpiWriteReg(CCxxx0_FSCTRL0,rfSettings.FSCTRL2);    
 144   1      
 145   1      //      arrTx[0] = 0x55;
 146   1      //      arrTx[1] = 0x0A;
 147   1      //      arrTx[2] = 0xCC;
 148   1      
 149   1      //      arrTx[3] = 0x33;
 150   1      
 151   1         
 152   1      //      halRfSendPacket(arrTx, 4);
 153   1              while(1)
 154   1              {     
 155   2      
 156   2                    LED =~LED;
 157   2              
 158   2             // delay(60000);
 159   2               
 160   2                      
 161   2                      if(halRfReceivePacket(arrRx,4))
 162   2                      {
 163   3                      
 164   3                              
 165   3              
 166   3                          SendCh(arrRx[0]);
 167   3                  SendCh(arrRx[1]);
 168   3                              SendCh(arrRx[2]);
 169   3                  SendCh(arrRx[3]);
 170   3                        
 171   3                      }
 172   2                      
 173   2      
 174   2              
 175   2              
 176   2              
 177   2                 }
 178   1      
C51 COMPILER V8.02   CC1100_RX                                                             11/15/2007 16:36:32 PAGE 4   

 179   1      
 180   1      }
 181          
 182          
 183          
 184          
 185          /*****************************************************************************************
 186          //函数名:void PORT_Init (void)
 187          //输入:无
 188          //输出:无
 189          //功能描述:
 190          /*****************************************************************************************/
 191          void PORT_Init (void)
 192          {
 193   1         P0MDOUT = 0x51;
 194   1         P2MDOUT = 0x01;
 195   1         P3MDOUT = 0x08;
 196   1         XBR0 = 0x01;
 197   1         XBR1 = 0xC0;
 198   1         
 199   1         CS_CC1100 = 1;
 200   1         SCK       = 0;
 201   1         MISO      = 1;
 202   1         MOSI      = 0;
 203   1         GDO0      = 1;  
 204   1         GDO2      = 1;
 205   1         LED       = 1;  
 206   1         CS_CC1100 = 1;
 207   1      
 208   1      }
 209          
 210          
 211          void SYSCLK_Init(void)
 212          {
 213   1         OSCICN = 0x83;
 214   1         CLKSEL = 0x00;
 215   1      
 216   1      }
 217          
 218          
 219          /*****************************************************************************************
 220          //函数名:void UART0_Init(void)
 221          //功能描述:初始化串口0,9600,8,N
 222          /*****************************************************************************************/
 223          void UART0_Init(void)
 224          {
 225   1              SCON0 = 0x10;           //串口方式1,8,允许接收
 226   1              TMOD |= 0x20;           //定时器1工作方式1,8 autoload
 227   1              TH1 = 0x96;     
 228   1              TL1 = 0x96;     
 229   1          
 230   1              TR1 = 1;                    //启动定时器1
 231   1              ES0 = 0;
 232   1      }
 233          
 234          /*****************************************************************************************
 235          //函数名:void SendCh(INT8U c)
 236          //输入:无
 237          //输出:无
 238          //功能描述:串口发送一个字符
 239          /*****************************************************************************************/
 240          void SendCh(INT8U c)
C51 COMPILER V8.02   CC1100_RX                                                             11/15/2007 16:36:32 PAGE 5   

 241          {
 242   1          EA  = 0;
 243   1      
 244   1          TI0 = 0;
 245   1              SBUF0 = c;
 246   1              while(!TI0);
 247   1              TI0 = 0;
 248   1              EA = 1;
 249   1      }
 250          
 251          
 252          
 253          
 254          //*****************************************************************************************
 255          //函数名:void delay(unsigned int s)
 256          //输入:时间
 257          //输出:无
 258          //功能描述:普通廷时
 259          //*****************************************************************************************             
 260          void delay(unsigned int s)
 261          {
 262   1              unsigned int i;
 263   1              for(i=0; i<s; i++);
 264   1              for(i=0; i<s; i++);
 265   1          for(i=0; i<s; i++);
 266   1      }
 267          
 268          
 269          //*****************************************************************************************
 270          //函数名:INT8U SpiReadWrite(INT8U dat)
 271          //输入:发送的数据
 272          //输出:无
 273          //功能描述:SPI发送一个字节
 274          //*****************************************************************************************
 275          INT8U SpiReadWrite(INT8U dat)
 276          {
 277   1              INT8U i,temp;
 278   1      
 279   1              temp = 0;       
 280   1              SCK = 0;        
 281   1              _nop_();
 282   1              for(i=0; i<8; i++)

⌨️ 快捷键说明

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