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

📄 1100.lst

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

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

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

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

⌨️ 快捷键说明

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