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

📄 si4421.lst

📁 c8051f310xmodembootloader.rar
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.16   SI4421                                                                12/10/2009 11:19:18 PAGE 1   


C51 COMPILER V8.16, COMPILATION OF MODULE SI4421
OBJECT MODULE PLACED IN si4421.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE si4421.c LARGE BROWSE INTVECTOR(0X1000) DEBUG OBJECTEXTEND

line level    source

   1          #include "global.h"
   2          
   3          uchar idata n;
   4          bit revframe;
   5          /******************************************************************************
   6          ** 函数: ia442xinit()
   7          ** 入参: 
   8          ** 返回: 
   9          ** 说明: ia442x初始化
  10          ******************************************************************************/
  11          void ia442xinit()                               
  12          {       
  13   1          spisendcommand(0xCED4);             //SYNC=2DD4;
  14   1              spisendcommand(0xCC77);         //OB1,OB0, LPX,!ddy,DDIT,BW0
  15   1          spisendcommand(0x80d7);             //;配置命令,fd-915M,dd-433M
  16   1              spisendcommand(0x8208);         //;电源管理 crystal on batter dectector
  17   1              spisendcommand(0xa080);         //;频率设置 430.32MHz(中心频率)
  18   1              spisendcommand(0xc623);         //;9600波特率设置 (c605)BR = 10000 / 29 / (R+1) / (1+cs*7) [kbps] R= (10000 / 29
             - / (1+cs*7) / BR) – 
  19   1              spisendcommand(0x9480);         //;接收控制 VDI OUTPUT FAST 200KHz(BW) RELATIVE to MAXIMUM 0dB RSSIsetth -85dBm
  20   1              spisendcommand(0xc22c);         //;数据滤波 Clock recovery (CR) auto lock control, if set.CR will start in fast 
             -mode.
  21   1                                      //;fast mode, fast attack and fast release (6 to 8 bit preamble (1010...) 
             -is recommended)
  22   1                                      //;Digital filter                                                         
             -                    
  23   1              spisendcommand(0xca80);         //;FIFO COMMAND FIFO IT LEVEL 8 SYNCHRON PATTERN FIFO FILL DISABLE DISABLE THE H
             -IGHLY SEBSITIVE
  24   1              spisendcommand(0xc4f7);         //;AFC COMMAND KEEP THE Foffset VALUE +7Fres to -8Fres
  25   1              spisendcommand(power);          //;TXCTRL bias 75KHz RELATIVE OUTPUT POWER 0dB
  26   1      
  27   1      }
  28          /******************************************************************************
  29          ** 函数: receive(void)
  30          ** 入参: 
  31          ** 返回: 
  32          ** 说明: 接收
  33          ******************************************************************************/
  34          
  35          bit receive(void)
  36          {
  37   1        
  38   1         bit flg;
  39   1      
  40   1             sdi=0;
  41   1                 nsel=0;
  42   1                 revframe = 0;
  43   1              if(sdo)
  44   1                      {
  45   2        
  46   2                              fiforxframe();
  47   2                              if (revframe)
  48   2                                {
  49   3                                  spisendcommand(0xca83); 
  50   3                                      flg=1;
C51 COMPILER V8.16   SI4421                                                                12/10/2009 11:19:18 PAGE 2   

  51   3                               
  52   3                                }
  53   2                              else 
  54   2                              {
  55   3                               flg=0;
  56   3                              }
  57   2      
  58   2                  }
  59   1               else
  60   1               {
  61   2                 flg=0;
  62   2               }
  63   1      
  64   1      return(flg);
  65   1      }
  66          
  67          /******************************************************************************
  68          ** 函数: fiforxframe()
  69          ** 入参: 
  70          ** 返回: 
  71          ** 说明: ia442x接收一帧数据
  72          ******************************************************************************/
  73          
  74          void fiforxframe()                              
  75          {
  76   1              unsigned char i;
  77   1              unsigned int k;
  78   1      
  79   1              n = 0;
  80   1              spirevbyte();
  81   1              spirevbyte();
  82   1              rxdata[0]=spirevbyte();
  83   1              nsel=1;
  84   1              if(rxdata[0]==0xfa)
  85   1              {
  86   2                      sdi=0;
  87   2                      nsel=0;
  88   2                      //      while(!sdo);
  89   2                              
  90   2                      for(k=0;k<6000;k++)
  91   2                        {
  92   3                          if(sdo)
  93   3                               {
  94   4                                break;
  95   4                               }
  96   3                        }
  97   2                        if(k==6000)
  98   2                        {    // nres=0;
  99   3                                 //delayms(50);
 100   3                                 //nres=1;
 101   3                         ia442xinit();
 102   3                 spirevtwobyte();
 103   3                 spisendcommand(0x8288);                          //电源管理 whole receive crystal on
 104   3                 spisendcommand(0xca83);                              //FIFO COMMAND
 105   3                         if(DEBUG) Printf_String("\r\n[msg:]001 si4421's sdo is dead but she can receive");
 106   3                              return;
 107   3                        }
 108   2                        
 109   2                      spirevbyte();
 110   2                      spirevbyte();
 111   2                      rxdata[1]=spirevbyte();
 112   2                      nsel=1;
C51 COMPILER V8.16   SI4421                                                                12/10/2009 11:19:18 PAGE 3   

 113   2                      n=rxdata[1]&0xff;                       //最大接收255字节
 114   2                      if(n<31)
 115   2                 {
 116   3                      for(i=0;i<n;i++)
 117   3                      {
 118   4                              sdi = 0;
 119   4                              nsel = 0;
 120   4      
 121   4                      //      while(!sdo);
 122   4                      for(k=0;k<6000;k++)
 123   4                        {
 124   5                          if(sdo)
 125   5                               {
 126   6                                break;
 127   6                               }
 128   5                        }
 129   4                          if(k==6000) 
 130   4                              { //nres=0;
 131   5                                // delayms(50);
 132   5                                // nres=1;
 133   5                                ia442xinit();
 134   5                    spirevtwobyte();
 135   5                    spisendcommand(0x8288);                       //电源管理 whole receive crystal on
 136   5                    spisendcommand(0xca83);                           //FIFO COMMAND
 137   5                                return;
 138   5                                if(DEBUG) Printf_String("\r\n[msg:]002 si4421's sdo is dead but she can receive");
 139   5                              }
 140   4                         
 141   4                              spirevbyte();
 142   4                              spirevbyte();
 143   4                              rxdata[i+2]=spirevbyte();
 144   4                              nsel=1;
 145   4                      }
 146   3                      revframe=1;
 147   3                      
 148   3                      spisendcommand(0xca81);//Disables the highly sensitive RESET mode.
 149   3                }
 150   2                else
 151   2                  {revframe = 0;}             
 152   2                      
 153   2              }
 154   1              else
 155   1                {
 156   2                  revframe = 0;
 157   2                }
 158   1                      
 159   1      }
 160          /******************************************************************************
 161          ** 函数: txregframe()
 162          ** 入参: 
 163          ** 返回: 
 164          ** 说明: ia442x发送一帧数据
 165          ******************************************************************************/
 166          void txregframe(unsigned char len)                                      
 167          {

⌨️ 快捷键说明

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