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

📄 1100.lst

📁 CC1100无线232收发程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 203              0xEA,   // FSCAL3    Frequency synthesizer calibration.
 204              0x2A,   // FSCAL2    Frequency synthesizer calibration.
 205              0x00,   // FSCAL1    Frequency synthesizer calibration.
 206              0x11,   // FSCAL0    Frequency synthesizer calibration.
 207              0x59,   // FSTEST    Frequency synthesizer calibration.
 208              0x81,   // TEST2     Various test settings.
 209              0x35,   // TEST1     Various test settings.
 210              0x09,   // TEST0     Various test settings.
 211              0x0B,   // IOCFG2    GDO2 output pin configuration.
 212              0x06,   // IOCFG0D   GDO0 output pin configuration. Refer to SmartRF?Studio User Manual for detailed p
             -seudo register explanation.
 213          
 214              0x04,   // PKTCTRL1  Packet automation control.
 215              0x05,   // PKTCTRL0  Packet automation control.
 216              0x00,   // ADDR      Device address.
 217              0x0c    // PKTLEN    Packet length.
 218          };
 219          //*****************************************************************************************
 220          //函数名:delay(unsigned int s)
 221          //输入:时间
 222          //输出:无
 223          //功能描述:普通廷时,内部用
 224          //*****************************************************************************************             
 225          static void delay(unsigned int s)
 226          {
 227   1              unsigned int i;
 228   1              for(i=0; i<s; i++);
 229   1              for(i=0; i<s; i++);
 230   1      }
 231          
 232          
 233          void halWait(INT16U timeout) {
 234   1          do {
 235   2              _nop_();
 236   2                      _nop_();
 237   2                      _nop_();
 238   2                      _nop_();
 239   2                      _nop_();
C51 COMPILER V7.06   1100                                                                  12/19/2007 21:09:47 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                      _nop_();
 249   2                      _nop_(); 
 250   2          } while (--timeout);
 251   1      }
 252          
 253          
 254          void SpiInit(void)
 255          {
 256   1              CSN=0;
 257   1              SCK=0;
 258   1              CSN=1;
 259   1      }
 260          
 261          /*****************************************************************************************
 262          //函数名:CpuInit()
 263          //输入:无
 264          //输出:无
 265          //功能描述:SPI初始化程序
 266          /*****************************************************************************************/
 267          void CpuInit(void)
 268          {
 269   1              SpiInit();
 270   1              delay(5000);
 271   1      }
 272                  
 273          
 274          //*****************************************************************************************
 275          //函数名:SpisendByte(INT8U dat)
 276          //输入:发送的数据
 277          //输出:无
 278          //功能描述:SPI发送一个字节
 279          //*****************************************************************************************
 280          INT8U SpiTxRxByte(INT8U dat)
 281          {
 282   1              INT8U i,temp;
 283   1              temp = 0;
 284   1              
 285   1              SCK = 0;
 286   1              for(i=0; i<8; i++)
 287   1              {
 288   2                      if(dat & 0x80)
 289   2                      {
 290   3                              MOSI = 1;
 291   3                      }
 292   2                      else MOSI = 0;
 293   2                      dat <<= 1;
 294   2      
 295   2                      SCK = 1; 
 296   2                      _nop_();
 297   2                      _nop_();
 298   2      
 299   2                      temp <<= 1;
 300   2                      if(MISO)temp++; 
 301   2                      SCK = 0;
C51 COMPILER V7.06   1100                                                                  12/19/2007 21:09:47 PAGE 6   

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

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

⌨️ 快捷键说明

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