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

📄 uart.lst

📁 采用CYGNAL F015单片机
💻 LST
字号:
C51 COMPILER V7.08   UART                                                                  04/10/2005 22:25:31 PAGE 1   


C51 COMPILER V7.08, COMPILATION OF MODULE UART
OBJECT MODULE PLACED IN uart.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE uart.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          ////WorkState(F:充电,C:放电,E:无操作,N:无电池) 
   2          //将缓冲池中的数据取走,调整缓冲池的数据个数、头指针、尾指针
   3          #include "uart.h"
   4          unsigned char DoWithCommand(void)
   5          {
   6   1        unsigned char R_command=0,reply=0,i=0 ;
   7   1        Current=0x05DC;  //1.5a
*** ERROR C202 IN LINE 7 OF UART.C: 'Current': undefined identifier
   8   1        Voltage=0x41A0;   //16.8v
*** ERROR C202 IN LINE 8 OF UART.C: 'Voltage': undefined identifier
   9   1        TimeRemain=0x0040;  //64min
*** ERROR C202 IN LINE 9 OF UART.C: 'TimeRemain': undefined identifier
  10   1              Edition=1;
*** ERROR C202 IN LINE 10 OF UART.C: 'Edition': undefined identifier
  11   1              RStepNo=1;
*** ERROR C202 IN LINE 11 OF UART.C: 'RStepNo': undefined identifier
  12   1              R_command=RData[(Head+3)%RBUFSIZE];                                     //命令代码
*** ERROR C202 IN LINE 12 OF UART.C: 'Head': undefined identifier
  13   1              
  14   1        switch (R_command)
  15   1          { 
  16   2         case CONNECT: //A:连接
*** ERROR C202 IN LINE 16 OF UART.C: 'CONNECT': undefined identifier
  17   2              SData[0]=14;
*** ERROR C202 IN LINE 17 OF UART.C: 'SData': undefined identifier
  18   2                  SData[1]=ADDRESS;
*** ERROR C202 IN LINE 18 OF UART.C: 'SData': undefined identifier
  19   2                  SData[2]=R_command;
*** ERROR C202 IN LINE 19 OF UART.C: 'SData': undefined identifier
  20   2                  SData[3]=WorkType;
*** ERROR C202 IN LINE 20 OF UART.C: 'SData': undefined identifier
  21   2                  SData[4]=Edition;
*** ERROR C202 IN LINE 21 OF UART.C: 'SData': undefined identifier
  22   2                  SData[5]=WorkState; //(&RunStep[RStepNo])->action;
*** ERROR C202 IN LINE 22 OF UART.C: 'SData': undefined identifier
  23   2                  SData[6]=RStepNo;
*** ERROR C202 IN LINE 23 OF UART.C: 'SData': undefined identifier
  24   2              SData[7]=Current%256;
*** ERROR C202 IN LINE 24 OF UART.C: 'SData': undefined identifier
  25   2              SData[8]=Current>>8;
*** ERROR C202 IN LINE 25 OF UART.C: 'SData': undefined identifier
  26   2              SData[9]=Voltage%256;
*** ERROR C202 IN LINE 26 OF UART.C: 'SData': undefined identifier
  27   2              SData[10]=Voltage>>8;
*** ERROR C202 IN LINE 27 OF UART.C: 'SData': undefined identifier
  28   2              SData[11]=VolumeRatio;
*** ERROR C202 IN LINE 28 OF UART.C: 'SData': undefined identifier
  29   2              SData[12]=TimeRemain%256;
*** ERROR C202 IN LINE 29 OF UART.C: 'SData': undefined identifier
  30   2              SData[13]=TimeRemain>>8;
*** ERROR C202 IN LINE 30 OF UART.C: 'SData': undefined identifier
  31   2                  SData[14]=OutCheckSum();
*** ERROR C202 IN LINE 31 OF UART.C: 'SData': undefined identifier
  32   2              reply=1;
  33   2            break;
C51 COMPILER V7.08   UART                                                                  04/10/2005 22:25:31 PAGE 2   

  34   2      
  35   2         case ACONTROL: // 'F'传送动作控制代码
*** ERROR C202 IN LINE 35 OF UART.C: 'ACONTROL': undefined identifier
  36   2           if (RData[(Head+4)%RBUFSIZE]=='A')
*** ERROR C202 IN LINE 36 OF UART.C: 'Head': undefined identifier
  37   2                {   
  38   3                    (&RunStep[0])->action=RData[(Head+6)%RBUFSIZE];
*** ERROR C202 IN LINE 38 OF UART.C: 'RunStep': undefined identifier
  39   3                (&RunStep[0])->ref_exe=RData[(Head+7)%RBUFSIZE]+RData[(Head+8)%RBUFSIZE]*256;
*** ERROR C202 IN LINE 39 OF UART.C: 'RunStep': undefined identifier
  40   3                (&RunStep[0])->ref_stp=RData[(Head+9)%RBUFSIZE]+RData[(Head+10)%RBUFSIZE]*256;
*** ERROR C202 IN LINE 40 OF UART.C: 'RunStep': undefined identifier
  41   3                     TStepNo=1;
*** ERROR C202 IN LINE 41 OF UART.C: 'TStepNo': undefined identifier
  42   3            }
  43   2                else if(RData[(Head+4)%RBUFSIZE]=='B')
*** ERROR C202 IN LINE 43 OF UART.C: 'Head': undefined identifier
  44   2                {
  45   3                    (&RunStep[TStepNo])->action=RData[(Head+6)%RBUFSIZE];
*** ERROR C202 IN LINE 45 OF UART.C: 'TStepNo': undefined identifier
  46   3                (&RunStep[TStepNo])->ref_exe=RData[(Head+7)%RBUFSIZE]+RData[(Head+8)%RBUFSIZE]*256;
*** ERROR C202 IN LINE 46 OF UART.C: 'TStepNo': undefined identifier
  47   3                (&RunStep[TStepNo])->ref_stp=RData[(Head+9)%RBUFSIZE]+RData[(Head+10)%RBUFSIZE]*256;
*** ERROR C202 IN LINE 47 OF UART.C: 'TStepNo': undefined identifier
  48   3                     TStepNo++;
*** ERROR C202 IN LINE 48 OF UART.C: 'TStepNo': undefined identifier
  49   3                 }
  50   2            else
  51   2                 {
  52   3                 //command length + address +command type[F传送动作控制代码]+
  53   3                 //command data[命令状态(A:第一条命令;B:后续命令;J:跳转指令)+序号 +
  54   3                 //动作代码CONTROL type [E] +跳转到指定的序号+循环的次数] +chechsum
  55   3                   if(RData[(Head+4)%RBUFSIZE]=='J')
*** ERROR C202 IN LINE 55 OF UART.C: 'Head': undefined identifier
  56   3                       {
  57   4                    (&RunStep[TStepNo])->action=RData[(Head+6)%RBUFSIZE];
*** ERROR C202 IN LINE 57 OF UART.C: 'TStepNo': undefined identifier
  58   4                (&RunStep[TStepNo])->ref_exe=RData[(Head+7)%RBUFSIZE];
*** ERROR C202 IN LINE 58 OF UART.C: 'TStepNo': undefined identifier
  59   4                (&RunStep[TStepNo])->ref_stp=RData[(Head+8)%RBUFSIZE];
*** ERROR C202 IN LINE 59 OF UART.C: 'TStepNo': undefined identifier
  60   4                     TStepNo++;
*** ERROR C202 IN LINE 60 OF UART.C: 'TStepNo': undefined identifier
  61   4                        }          
  62   3                 }
  63   2              SData[0]=5;
*** ERROR C202 IN LINE 63 OF UART.C: 'SData': undefined identifier
  64   2                  SData[1]=ADDRESS;
*** ERROR C202 IN LINE 64 OF UART.C: 'SData': undefined identifier
  65   2                  SData[2]=R_command;
*** ERROR C202 IN LINE 65 OF UART.C: 'SData': undefined identifier
  66   2                  SData[3]='O';
*** ERROR C202 IN LINE 66 OF UART.C: 'SData': undefined identifier
  67   2                  SData[4]='K';
*** ERROR C202 IN LINE 67 OF UART.C: 'SData': undefined identifier
  68   2                  SData[5]=SData[1]+SData[2]+SData[3]+SData[4];
*** ERROR C202 IN LINE 68 OF UART.C: 'SData': undefined identifier
  69   2              reply=2;
  70   2              break;
  71   2      
  72   2         case LSAMPLE: //'S':采样数据
*** ERROR C202 IN LINE 72 OF UART.C: 'LSAMPLE': undefined identifier
C51 COMPILER V7.08   UART                                                                  04/10/2005 22:25:31 PAGE 3   

  73   2              SData[0]=12;
*** ERROR C202 IN LINE 73 OF UART.C: 'SData': undefined identifier
  74   2                  SData[1]=ADDRESS;
*** ERROR C202 IN LINE 74 OF UART.C: 'SData': undefined identifier
  75   2                  SData[2]=R_command;
*** ERROR C202 IN LINE 75 OF UART.C: 'SData': undefined identifier
  76   2                  SData[3]=WorkState; //(&RunStep[RStepNo])->action;
*** ERROR C202 IN LINE 76 OF UART.C: 'SData': undefined identifier
  77   2                  SData[4]=RStepNo;
*** ERROR C202 IN LINE 77 OF UART.C: 'SData': undefined identifier
  78   2                  SData[5]=Current%256;
*** ERROR C202 IN LINE 78 OF UART.C: 'SData': undefined identifier
  79   2                  SData[6]=Current>>8;
*** ERROR C202 IN LINE 79 OF UART.C: 'SData': undefined identifier
  80   2              SData[7]=Voltage%256;
*** ERROR C202 IN LINE 80 OF UART.C: 'SData': undefined identifier
  81   2              SData[8]=Voltage>>8;
*** ERROR C202 IN LINE 81 OF UART.C: 'SData': undefined identifier
  82   2              SData[9]=VolumeRatio;
*** ERROR C202 IN LINE 82 OF UART.C: 'SData': undefined identifier
  83   2              SData[10]=TimeRemain%256;
*** ERROR C202 IN LINE 83 OF UART.C: 'SData': undefined identifier
  84   2              SData[11]=TimeRemain>>8;
*** ERROR C202 IN LINE 84 OF UART.C: 'SData': undefined identifier
  85   2              SData[12]=OutCheckSum();
*** ERROR C202 IN LINE 85 OF UART.C: 'SData': undefined identifier
  86   2            reply=3;
  87   2            break; 
  88   2      
  89   2         //command length +address +command type[G] +command data["on"  or  "off"] (1 B) +chechsum
  90   2       
  91   2         case LCONTROL: //'L':通道控制
*** ERROR C202 IN LINE 91 OF UART.C: 'LCONTROL': undefined identifier
  92   2            if(RData[Head+4]==1)
*** ERROR C202 IN LINE 92 OF UART.C: 'Head': undefined identifier
  93   2            Action_Control=1;
*** ERROR C202 IN LINE 93 OF UART.C: 'Action_Control': undefined identifier
  94   2                else
  95   2            Action_Control=0;
*** ERROR C202 IN LINE 95 OF UART.C: 'Action_Control': undefined identifier
  96   2                  SData[0]=5;
*** ERROR C202 IN LINE 96 OF UART.C: 'SData': undefined identifier
  97   2                  SData[1]=ADDRESS;
*** ERROR C202 IN LINE 97 OF UART.C: 'SData': undefined identifier
  98   2                  SData[2]=R_command;
*** ERROR C202 IN LINE 98 OF UART.C: 'SData': undefined identifier
  99   2                  SData[3]='O';
*** ERROR C202 IN LINE 99 OF UART.C: 'SData': undefined identifier
 100   2                  SData[4]='K';
*** ERROR C202 IN LINE 100 OF UART.C: 'SData': undefined identifier
 101   2                  SData[5]=SData[1]+SData[2]+SData[3]+SData[4];
*** ERROR C202 IN LINE 101 OF UART.C: 'SData': undefined identifier
 102   2                 reply=4;
 103   2            break;
 104   2      
 105   2           //以上情况为同种类型的应答
 106   2         case HDATA:  //'H': 历史操作数据
*** ERROR C202 IN LINE 106 OF UART.C: 'HDATA': undefined identifier
 107   2              ReadFlash();//
 108   2              SData[0]=13;
 109   2                  SData[1]=ADDRESS;
 110   2                  SData[2]=R_command;
C51 COMPILER V7.08   UART                                                                  04/10/2005 22:25:31 PAGE 4   

 111   2                  SData[3]=WorkState; //(&RunStep[RStepNo])->action;
 112   2                  SData[4]=RStepNo;
 113   2                  SData[5]=Current%256;
 114   2                  SData[6]=Current>>8;
 115   2              SData[7]=Voltage%256;
 116   2              SData[8]=Voltage>>8;
 117   2              SData[9]=VolumeRatio;
 118   2              SData[10]=TimeRemain%256;
 119   2              SData[11]=TimeRemain>>8;
 120   2              SData[12]= 0x00;//01表示还有后续的数据;00表示无后续数据 及所有数据传送完毕
 121   2              SData[13]=OutCheckSum();
 122   2              reply=5;
 123   2            break; 
 124   2      
 125   2         case ROMREAD: //'R':读,
 126   2              //SM_Receive (0x16, RData[(Head+4)%RBUFSIZE],RData[(Head+5)%RBUFSIZE]+1) ;
 127   2              SData[0]=2+RData[(Head+5)%RBUFSIZE];
 128   2                  SData[1]=ADDRESS;
 129   2                  SData[2]=R_command; 
 130   2               //添加相应的代码,从EEPROM中读出数据,并填写在ReplayMessage从3开始的单元中
 131   2              for(i=0;i<RData[(Head+5)%RBUFSIZE];i++)
 132   2                        SData[3+i]=RECVCHARS[i];
 133   2                      SData[3+i]=OutCheckSum();
 134   2              reply=6;
 135   2            break; 
 136   2      
 137   2         case ROMWRITE: //'W':写
 138   2             //添加相应的代码,将要写入的数据写入EEPROM中
 139   2              //SM_Send (0x16, RData[(Head+4)%RBUFSIZE], RData[(Head+5)%RBUFSIZE]+1) ;
 140   2                  SData[0]=5;
 141   2                  SData[1]=ADDRESS;
 142   2                  SData[2]=R_command;
 143   2                  SData[3]='O';
 144   2                  SData[4]='K';
 145   2                  SData[5]=SData[1]+SData[2]+SData[3]+SData[4];
 146   2              reply=7;
 147   2            break; 
 148   2      
 149   2         default: 
 150   2            break; 
 151   2          } 
 152   1       if(reply>=1 &&reply<=7 )
 153   1         {
 154   2      
 155   2                //DataSended=0;
 156   2                SBUF=SData[0];
 157   2            DataSended=1;//表示当前已传送字节位置
 158   2      
 159   2         }
 160   1         ES0=0;
 161   1         //DataNo=DataNo-(RData[(Head+1)%RBUFSIZE]+1);
 162   1         //Head=(Head+RData[(Head+1)%RBUFSIZE]+2)%RBUFSIZE ;  
 163   1         DataNo=0;
 164   1         Head=0;
 165   1         Pos=0; 
 166   1         ES0=1;
 167   1         return reply;
 168   1      }
 169          
 170          
 171          
 172          /********************************************************************************/
C51 COMPILER V7.08   UART                                                                  04/10/2005 22:25:31 PAGE 5   

 173          
 174          
 175          
 176          //在缓冲池中检验,是否有自己的数据。如果检查到别人的数据要清除。如果事自己的数据且正确就返回一个为1的值
 177          //若校验错误返回2;
 178          
 179          unsigned char RBufJudge()
 180          {
 181   1              unsigned char my_message=0;
 182   1              int Rcurrentp=0,temp_no,check_sum,tempacc=0;
 183   1              unsigned char temp_pos=0;
 184   1      
 185   1              temp_no =DataNo;//缓冲数据个数
 186   1          temp_pos=Head;
 187   1      
 188   1              if (temp_no >2)
 189   1              {    
 190   2              if(!(RData[(temp_pos)%RBUFSIZE]==0xff && RData[(temp_pos+1)%RBUFSIZE]!=0xff))
 191   2              {  
 192   3                    temp_no--;
 193   3                    temp_pos=(++temp_pos)%RBUFSIZE ;
 194   3              }
 195   2             else
 196   2             {
 197   3              //TR2 =1;         //开定时器2,启动超时检测
 198   3              if(RData[(temp_pos+2)%RBUFSIZE]==ADDRESS)
 199   3                          {
 200   4                                TestVar=RData[(temp_pos)%RBUFSIZE];
 201   4                        TestVar1=RData[(temp_pos+1)%RBUFSIZE];
 202   4                    TestVar2=DataNo;
 203   4                    TestVar3=Pos;
 204   4                     if ((Pos+RBUFSIZE-temp_pos)%RBUFSIZE<RData[(temp_pos+1)%RBUFSIZE]+2) //若当前数据‘个数小于指定长

⌨️ 快捷键说明

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