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

📄 cc1100_tx.lst

📁 #include <stc12c2052AD.H>// 标准库的头文件 #include <intrins.h> #include <absacc.h> #d
💻 LST
📖 第 1 页 / 共 3 页
字号:
 196          //输入:发送的字符串
 197          //输出:无
 198          //功能描述:发送一个字符串
 199          /*****************************************************************************************/
 200          void SendStr(INT8U *arr)
 201          {
 202   1              INT8U i;
 203   1              
 204   1              i = 0;
 205   1              while(arr[i] != '\0')
 206   1              {
 207   2                      SendCh(arr[i]);
 208   2                      i++;
 209   2              }
 210   1      }
 211          
 212          //*****************************************************************************************
 213          //函数名:SpisendByte(INT8U dat)
 214          //输入:发送的数据
 215          //输出:无
 216          //功能描述:SPI发送一个字节
 217          //*****************************************************************************************
 218          INT8U SpiTxRxByte(INT8U dat)
 219          {
 220   1              INT8U i,temp;
 221   1              temp = 0;
 222   1              
 223   1              SCK = 0;
 224   1              for(i=0; i<8; i++)
 225   1              {
 226   2                      if(dat & 0x80)
 227   2                      {
 228   3                              MOSI = 1;
 229   3                      }
 230   2                      else MOSI = 0;
 231   2                      dat <<= 1;
 232   2      
 233   2                      SCK = 1; 
 234   2                      _nop_();
 235   2                      _nop_();
 236   2      
 237   2                      temp <<= 1;
 238   2                      if(MISO)temp++; 
C51 COMPILER V7.06   CC1100_TX                                                             06/30/2008 11:13:22 PAGE 5   

 239   2                      SCK = 0;
 240   2                      _nop_();
 241   2                      _nop_();        
 242   2              }
 243   1              return temp;
 244   1      }
 245          
 246          //*****************************************************************************************
 247          //函数名:void RESET_CC1100(void)
 248          //输入:无
 249          //输出:无
 250          //功能描述:复位CC1100
 251          //*****************************************************************************************
 252          void RESET_CC1100(void) 
 253          {
 254   1              CSN = 0; 
 255   1              while (MISO);
 256   1          SpiTxRxByte(CCxxx0_SRES);           //写入复位命令
*** ERROR C202 IN LINE 256 OF CC1100_TX.C: 'CCxxx0_SRES': undefined identifier
 257   1              while (MISO); 
 258   1          CSN = 1; 
 259   1      }
 260          
 261          //*****************************************************************************************
 262          //函数名:void POWER_UP_RESET_CC1100(void) 
 263          //输入:无
 264          //输出:无
 265          //功能描述:上电复位CC1100
 266          //*****************************************************************************************
 267          void POWER_UP_RESET_CC1100(void) 
 268          {
 269   1              CSN = 1; 
 270   1              halWait(1); 
 271   1              CSN = 0; 
 272   1              halWait(1); 
 273   1              CSN = 1; 
 274   1              halWait(41); 
 275   1              RESET_CC1100();                 //复位CC1100
 276   1      }
 277          
 278          //*****************************************************************************************
 279          //函数名:void halSpiWriteReg(INT8U addr, INT8U value)
 280          //输入:地址和配置字
 281          //输出:无
 282          //功能描述:SPI写寄存器
 283          //*****************************************************************************************
 284          void halSpiWriteReg(INT8U addr, INT8U value) 
 285          {
 286   1          CSN = 0;
 287   1          while (MISO);
 288   1          SpiTxRxByte(addr);          //写地址
 289   1          SpiTxRxByte(value);         //写入配置
 290   1          CSN = 1;
 291   1      }
 292          
 293          //*****************************************************************************************
 294          //函数名:void halSpiWriteBurstReg(INT8U addr, INT8U *buffer, INT8U count)
 295          //输入:地址,写入缓冲区,写入个数
 296          //输出:无
 297          //功能描述:SPI连续写配置寄存器
 298          //*****************************************************************************************
 299          void halSpiWriteBurstReg(INT8U addr, INT8U *buffer, INT8U count) 
C51 COMPILER V7.06   CC1100_TX                                                             06/30/2008 11:13:22 PAGE 6   

 300          {
 301   1          INT8U i, temp;
 302   1              temp = addr | WRITE_BURST;
 303   1          CSN = 0;
 304   1          while (MISO);
 305   1          SpiTxRxByte(temp);
 306   1          for (i = 0; i < count; i++)
 307   1              {
 308   2              SpiTxRxByte(buffer[i]);
 309   2          }
 310   1          CSN = 1;
 311   1      }
 312          
 313          //*****************************************************************************************
 314          //函数名:void halSpiStrobe(INT8U strobe)
 315          //输入:命令
 316          //输出:无
 317          //功能描述:SPI写命令
 318          //*****************************************************************************************
 319          void halSpiStrobe(INT8U strobe) 
 320          {
 321   1          CSN = 0;
 322   1          while (MISO);
 323   1          SpiTxRxByte(strobe);                //写入命令
 324   1          CSN = 1;
 325   1      }
 326          
 327          
 328          
 329          
 330          
 331          //*****************************************************************************************
 332          //函数名:INT8U halSpiReadReg(INT8U addr)
 333          //输入:地址
 334          //输出:该寄存器的配置字
 335          //功能描述:SPI读寄存器
 336          //*****************************************************************************************
 337          INT8U halSpiReadReg(INT8U addr) 
 338          {
 339   1              INT8U temp, value;
 340   1          temp = addr|READ_SINGLE;//读寄存器命令
 341   1              CSN = 0;
 342   1              while (MISO);
 343   1              SpiTxRxByte(temp);
 344   1              value = SpiTxRxByte(0);
 345   1              CSN = 1;
 346   1              return value;
 347   1      }
 348          
 349          
 350          //*****************************************************************************************
 351          //函数名:void halSpiReadBurstReg(INT8U addr, INT8U *buffer, INT8U count)
 352          //输入:地址,读出数据后暂存的缓冲区,读出配置个数
 353          //输出:无
 354          //功能描述:SPI连续写配置寄存器
 355          //*****************************************************************************************
 356          void halSpiReadBurstReg(INT8U addr, INT8U *buffer, INT8U count) 
 357          {
 358   1          INT8U i,temp;
 359   1              temp = addr | READ_BURST;               //写入要读的配置寄存器地址和读命令
 360   1          CSN = 0;
 361   1          while (MISO);
C51 COMPILER V7.06   CC1100_TX                                                             06/30/2008 11:13:22 PAGE 7   

 362   1              SpiTxRxByte(temp);   
 363   1          for (i = 0; i < count; i++) 
 364   1              {
 365   2              buffer[i] = SpiTxRxByte(0);
 366   2          }
 367   1          CSN = 1;
 368   1      }
 369          
 370          
 371          //*****************************************************************************************
 372          //函数名:INT8U halSpiReadReg(INT8U addr)
 373          //输入:地址
 374          //输出:该状态寄存器当前值
 375          //功能描述:SPI读状态寄存器
 376          //*****************************************************************************************
 377          INT8U halSpiReadStatus(INT8U addr) 
 378          {
 379   1          INT8U value,temp;
 380   1              temp = addr | READ_BURST;               //写入要读的状态寄存器的地址同时写入读命令
 381   1          CSN = 0;
 382   1          while (MISO);
 383   1          SpiTxRxByte(temp);
 384   1              value = SpiTxRxByte(0);
 385   1              CSN = 1;
 386   1              return value;
 387   1      }
 388          
 389          
 390          //*****************************************************************************************
 391          //函数名:void halRfWriteRfSettings(RF_SETTINGS *pRfSettings)
 392          //输入:无
 393          //输出:无
 394          //功能描述:配置CC1100的寄存器
 395          //*****************************************************************************************
 396          void halRfWriteRfSettings(void) 
 397          {
 398   1              halSpiWriteReg(CCxxx0_FSCTRL0,  rfSettings.FSCTRL2);//自已加的
*** ERROR C202 IN LINE 398 OF CC1100_TX.C: 'CCxxx0_FSCTRL0': undefined identifier
 399   1          // Write register settings
 400   1          halSpiWriteReg(CCxxx0_FSCTRL1,  rfSettings.FSCTRL1);

⌨️ 快捷键说明

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