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

📄 1100.lst

📁 买NewMsg-RF1100这个无线模块时
💻 LST
📖 第 1 页 / 共 3 页
字号:
 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                                                                  10/28/2008 22:55:12 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                                                                  10/28/2008 22:55:12 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                                                                  10/28/2008 22:55:12 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)
 414          //输入:地址,读出数据后暂存的缓冲区,读出配置个数
 415          //输出:无
 416          //功能描述:SPI连续写配置寄存器
 417          //*****************************************************************************************
 418          void halSpiReadBurstReg(INT8U addr, INT8U *buffer, INT8U count) 
 419          {
 420   1          INT8U i,temp;
 421   1              temp = addr | READ_BURST;               //写入要读的配置寄存器地址和读命令
 422   1          CSN = 0;
 423   1          while (MISO);
 424   1              SpiTxRxByte(temp);   
 425   1          for (i = 0; i < count; i++) 
C51 COMPILER V7.06   1100                                                                  10/28/2008 22:55:12 PAGE 8   

 426   1              {
 427   2              buffer[i] = SpiTxRxByte(0);
 428   2          }
 429   1          CSN = 1;
 430   1      }
 431          
 432          
 433          //*****************************************************************************************
 434          //函数名:INT8U halSpiReadReg(INT8U addr)
 435          //输入:地址
 436          //输出:该状态寄存器当前值
 437          //功能描述:SPI读状态寄存器
 438          //*****************************************************************************************
 439          INT8U halSpiReadStatus(INT8U addr) 
 440          {
 441   1          INT8U value,temp;
 442   1              temp = addr | READ_BURST;               //写入要读的状态寄存器的地址同时写入读命令
 443   1          CSN = 0;
 444   1          while (MISO);
 445   1          SpiTxRxByte(temp);
 446   1              value = SpiTxRxByte(0);
 447   1              CSN = 1;
 448   1              return value;
 449   1      }
 450          //*****************************************************************************************
 451          //函数名:void halRfWriteRfSettings(RF_SETTINGS *pRfSettings)
 452          //输入:无
 453          //输出:无
 454          //功能描述:配置CC1100的寄存器
 455          //*****************************************************************************************
 456          void halRfWriteRfSettings(void) 
 457          {
 458   1      
 459   1              halSpiWriteReg(CCxxx0_FSCTRL0,  rfSettings.FSCTRL2);//自已加的
 460   1          // Write register settings
 461   1          halSpiWriteReg(CCxxx0_FSCTRL1,  rfSettings.FSCTRL1);

⌨️ 快捷键说明

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