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

📄 1100.lst

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

 240   2                      _nop_();
 241   2                      _nop_();
 242   2                      _nop_();
 243   2                      _nop_();
 244   2                      _nop_();
 245   2                      _nop_();
 246   2                      _nop_();
 247   2                      _nop_(); 
 248   2          } while (--timeout);
 249   1      }
 250          //*********************************SPI接口初始化*******************************************
 251          void SpiInit(void)
 252          {
 253   1              CSN=0;
 254   1              SCK=0;
 255   1              CSN=1;
 256   1      }
 257          /****************************************************************************************
 258          //函数名:CpuInit()
 259          //输入:无
 260          //输出:无
 261          //功能描述:SPI初始化程序
 262          /*****************************************************************************************/
 263          void CpuInit(void)
 264          {
 265   1              SpiInit();
 266   1              delay(5000);
 267   1      }
 268          //*****************************************************************************************
 269          //函数名:SpisendByte(INT8U dat)
 270          //输入:发送的数据
 271          //输出:无
 272          //功能描述:SPI发送一个字节
 273          //*****************************************************************************************
 274          INT8U SpiTxRxByte(INT8U dat)
 275          {
 276   1              INT8U i,temp;
 277   1              temp = 0;       
 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          //函数名:void RESET_CC1100(void)
C51 COMPILER V7.06   1100                                                                  12/18/2007 19:48:16 PAGE 6   

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

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

⌨️ 快捷键说明

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