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

📄 1100.lst

📁 无线模块cc1101学习资料
💻 LST
📖 第 1 页 / 共 3 页
字号:
 199              0xEA,   // FSCAL3    Frequency synthesizer calibration.
 200              0x2A,   // FSCAL2    Frequency synthesizer calibration.
 201              0x00,   // FSCAL1    Frequency synthesizer calibration.
 202              0x11,   // FSCAL0    Frequency synthesizer calibration.
 203              0x59,   // FSTEST    Frequency synthesizer calibration.
 204              0x81,   // TEST2     Various test settings.
 205              0x35,   // TEST1     Various test settings.
 206              0x09,   // TEST0     Various test settings.
 207              0x0B,   // IOCFG2    GDO2 output pin configuration.
 208              0x06,   // IOCFG0D   GDO0 output pin configuration. Refer to SmartRF?Studio User Manual for detailed p
             -seudo register explanation.
 209          
 210              0x04,   // PKTCTRL1  Packet automation control.
 211              0x05,   // PKTCTRL0  Packet automation control.
 212              0x00,   // ADDR      Device address.
 213              0x0c    // PKTLEN    Packet length.
 214          };
 215          //*****************************************************************************************
 216          //函数名:delay(unsigned int s)
 217          //输入:时间
 218          //输出:无
 219          //功能描述:普通廷时,内部用
 220          //*****************************************************************************************             
 221          static void delay(unsigned int s)
 222          {
 223   1              unsigned int i;
 224   1              for(i=0; i<s; i++);
 225   1              for(i=0; i<s; i++);
 226   1      }
 227          
 228          
 229          void halWait(INT16U timeout) {
 230   1          do {
 231   2              _nop_();
 232   2                      _nop_();
 233   2                      _nop_();
 234   2                      _nop_();
 235   2                      _nop_();
 236   2                      _nop_();
 237   2                      _nop_();
 238   2                      _nop_();
 239   2                      _nop_();
C51 COMPILER V7.06   1100                                                                  12/18/2007 16:53:25 PAGE 5   

 240   2                      _nop_();
 241   2                      _nop_();
 242   2                      _nop_();
 243   2                      _nop_();
 244   2                      _nop_();
 245   2                      _nop_(); 
 246   2          } while (--timeout);
 247   1      }
 248          
 249          
 250          void SpiInit(void)
 251          {
 252   1              CSN=0;
 253   1              SCK=0;
 254   1              CSN=1;
 255   1      }
 256          
 257          /*****************************************************************************************
 258          //函数名:CpuInit()
 259          //输入:无
 260          //输出:无
 261          //功能描述:SPI初始化程序
 262          /*****************************************************************************************/
 263          void CpuInit(void)
 264          {
 265   1              SpiInit();
 266   1              delay(5000);
 267   1      }
 268                  
 269          
 270          //*****************************************************************************************
 271          //函数名:SpisendByte(INT8U dat)
 272          //输入:发送的数据
 273          //输出:无
 274          //功能描述:SPI发送一个字节
 275          //*****************************************************************************************
 276          INT8U SpiTxRxByte(INT8U dat)
 277          {
 278   1              INT8U i,temp;
 279   1              temp = 0;
 280   1              
 281   1              SCK = 0;
 282   1              for(i=0; i<8; i++)
 283   1              {
 284   2                      if(dat & 0x80)
 285   2                      {
 286   3                              MOSI = 1;
 287   3                      }
 288   2                      else MOSI = 0;
 289   2                      dat <<= 1;
 290   2      
 291   2                      SCK = 1; 
 292   2                      _nop_();
 293   2                      _nop_();
 294   2      
 295   2                      temp <<= 1;
 296   2                      if(MISO)temp++; 
 297   2                      SCK = 0;
 298   2                      _nop_();
 299   2                      _nop_();        
 300   2              }
 301   1              return temp;
C51 COMPILER V7.06   1100                                                                  12/18/2007 16:53:25 PAGE 6   

 302   1      }
 303          
 304          //*****************************************************************************************
 305          //函数名:void RESET_CC1100(void)
 306          //输入:无
 307          //输出:无
 308          //功能描述:复位CC1100
 309          //*****************************************************************************************
 310          void RESET_CC1100(void) 
 311          {
 312   1              CSN = 0; 
 313   1              while (MISO);
 314   1          SpiTxRxByte(CCxxx0_SRES);           //写入复位命令
 315   1              while (MISO); 
 316   1          CSN = 1; 
 317   1      }
 318          
 319          //*****************************************************************************************
 320          //函数名:void POWER_UP_RESET_CC1100(void) 
 321          //输入:无
 322          //输出:无
 323          //功能描述:上电复位CC1100
 324          //*****************************************************************************************
 325          void POWER_UP_RESET_CC1100(void) 
 326          {
 327   1              CSN = 1; 
 328   1              halWait(1); 
 329   1              CSN = 0; 
 330   1              halWait(1); 
 331   1              CSN = 1; 
 332   1              halWait(41); 
 333   1              RESET_CC1100();                 //复位CC1100
 334   1      }
 335          
 336          //*****************************************************************************************
 337          //函数名:void halSpiWriteReg(INT8U addr, INT8U value)
 338          //输入:地址和配置字
 339          //输出:无
 340          //功能描述:SPI写寄存器
 341          //*****************************************************************************************
 342          void halSpiWriteReg(INT8U addr, INT8U value) 
 343          {
 344   1          CSN = 0;
 345   1          while (MISO);
 346   1          SpiTxRxByte(addr);          //写地址
 347   1          SpiTxRxByte(value);         //写入配置
 348   1          CSN = 1;
 349   1      }
 350          
 351          //*****************************************************************************************
 352          //函数名:void halSpiWriteBurstReg(INT8U addr, INT8U *buffer, INT8U count)
 353          //输入:地址,写入缓冲区,写入个数
 354          //输出:无
 355          //功能描述:SPI连续写配置寄存器
 356          //*****************************************************************************************
 357          void halSpiWriteBurstReg(INT8U addr, INT8U *buffer, INT8U count) 
 358          {
 359   1          INT8U i, temp;
 360   1              temp = addr | WRITE_BURST;
 361   1          CSN = 0;
 362   1          while (MISO);
 363   1          SpiTxRxByte(temp);
C51 COMPILER V7.06   1100                                                                  12/18/2007 16:53:25 PAGE 7   

 364   1          for (i = 0; i < count; i++)
 365   1              {
 366   2              SpiTxRxByte(buffer[i]);
 367   2          }
 368   1          CSN = 1;
 369   1      }
 370          
 371          //*****************************************************************************************
 372          //函数名:void halSpiStrobe(INT8U strobe)
 373          //输入:命令
 374          //输出:无
 375          //功能描述:SPI写命令
 376          //*****************************************************************************************
 377          void halSpiStrobe(INT8U strobe) 
 378          {
 379   1          CSN = 0;
 380   1          while (MISO);
 381   1          SpiTxRxByte(strobe);                //写入命令
 382   1          CSN = 1;
 383   1      }
 384          
 385          
 386          
 387          
 388          
 389          //*****************************************************************************************
 390          //函数名:INT8U halSpiReadReg(INT8U addr)
 391          //输入:地址
 392          //输出:该寄存器的配置字
 393          //功能描述:SPI读寄存器
 394          //*****************************************************************************************
 395          INT8U halSpiReadReg(INT8U addr) 
 396          {
 397   1              INT8U temp, value;
 398   1          temp = addr|READ_SINGLE;//读寄存器命令
 399   1              CSN = 0;
 400   1              while (MISO);
 401   1              SpiTxRxByte(temp);
 402   1              value = SpiTxRxByte(0);
 403   1              CSN = 1;
 404   1              return value;
 405   1      }

⌨️ 快捷键说明

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