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

📄 task_init.lis

📁 手操器
💻 LIS
字号:
                        .module task_init.c
                        .area text(rom, con, rel)
 0000                   .dbfile ..\..\..\..\DOCUME~1\Administrator\桌面\手操器\task_init.c
 0000                   .dbfile C:\DOCUME~1\Administrator\桌面\手操器\task_init.c
 0000                   .dbfunc e TaskInit _TaskInit fV
 0000           ;              i -> <dead>
                        .even
 0000           _TaskInit::
 0000 AA92              st -y,R10
 0002                   .dbline -1
 0002                   .dbline 39
 0002           ; #include <iom16v.h>
 0002           ; #include <macros.h>
 0002           ; #include "eeprom.h"
 0002           ; #include "TypeDef.h"
 0002           ; extern unsigned char disp_flag;
 0002           ; extern unsigned char TaskState[MAX_TASK_NUM];
 0002           ; extern unsigned int  No_key_count;
 0002           ; extern unsigned char       KeyIdleTimer;
 0002           ; extern unsigned char DisStatus;
 0002           ; extern unsigned char  SampleTimer;
 0002           ; extern unsigned char Para_mody;
 0002           ; extern unsigned char Para_mody_count;
 0002           ; extern unsigned char Para_Dis_mody;
 0002           ; /***************************************************************************/
 0002           ; extern unsigned char      SysErrorCode;
 0002           ; extern DataPackageType    Current4_20mA;
 0002           ; extern DataPackageType    OutputSignal;
 0002           ;  union{
 0002           ;       unsigned char   E2PROMBuffer[4];
 0002           ;       struct{
 0002           ;       unsigned int    WritedVariable;
 0002           ;       unsigned char   Xor1;
 0002           ;       unsigned char   Xor2;   
 0002           ;       }SingleVariable;
 0002           ; }BufferForWriteE2PROM;
 0002           ; extern unsigned int CurrentOut;
 0002           ; extern unsigned char     DisBuffer[8];
 0002           ; extern unsigned char KeyContinusPressCount;
 0002           ; extern unsigned char InterKeyTimer;
 0002           ; extern unsigned char ReadAPageFromE2PROMAndCheckIt(unsigned int E2PROMAddr);
 0002           ; extern void   WriteUnsignedIntToE2PROM(unsigned int WritedVariable,unsigned int E2PROMAddr);
 0002           ; extern unsigned int NeedModifyVariable;
 0002           ; extern unsigned int NeedModifyVariableLowLimit;
 0002           ; extern unsigned int NeedModifyVariableHighLimit;
 0002           ; //----------------------------------------------------------------------
 0002           ; //任务初始化
 0002           ; //各个任务的状态,及所用到的变量,以及从E2PROM中读取参数。
 0002           ; void TaskInit(void)
 0002           ; {
 0002                   .dbline 41
 0002           ;        unsigned char i;
 0002           ;       TaskState[SAMPLE_TASK]           =TASK_WAITTING_EVENT;
 0002 81E0              ldi R24,1
 0004 80930300          sts _TaskState+3,R24
 0008                   .dbline 42
 0008           ;       TaskState[CALCULATE_TASK]        =TASK_WAITTING_EVENT;
 0008 80930100          sts _TaskState+1,R24
 000C                   .dbline 43
 000C           ;     TaskState[KEY_PROC_TASK]         =TASK_WAITTING_EVENT;
 000C 80930000          sts _TaskState,R24
 0010                   .dbline 44
 0010           ;       TaskState[SYS_TIMER_TASK]        =TASK_WAITTING_EVENT;
 0010 80930200          sts _TaskState+2,R24
 0014                   .dbline 47
 0014           ; 
 0014           ;                                                       //TASK_WAITTING_EVENT为1 把TaskState初始化为1等待状态 
 0014           ;     KeyIdleTimer=0;
 0014 2224              clr R2
 0016 20920000          sts _KeyIdleTimer,R2
 001A                   .dbline 48
 001A           ;       SysErrorCode=0;
 001A 20920000          sts _SysErrorCode,R2
 001E                   .dbline 49
 001E           ;       Para_mody=0;
 001E 20920000          sts _Para_mody,R2
 0022                   .dbline 50
 0022           ;       Para_Dis_mody=0;
 0022 20920000          sts _Para_Dis_mody,R2
 0026                   .dbline 51
 0026           ;       Para_mody_count=0;
 0026 20920000          sts _Para_mody_count,R2
 002A                   .dbline 52
 002A           ;       DisStatus=Working_DDS;
 002A 20920000          sts _DisStatus,R2
 002E                   .dbline 54
 002E           ; 
 002E           ;       if( ReadAPageFromE2PROMAndCheckIt(CurrentADLo_E2PROM) )
 002E 08E1              ldi R16,24
 0030 10E0              ldi R17,0
 0032 0E940000          xcall _ReadAPageFromE2PROMAndCheckIt
 0036 0023              tst R16
 0038 49F0              breq L11
 003A           X0:
 003A                   .dbline 55
 003A           ;               Current4_20mA.AdLo.Word=BufferForWriteE2PROM.SingleVariable.WritedVariable;//unsigned int
 003A 20900000          lds R2,_BufferForWriteE2PROM
 003E 30900100          lds R3,_BufferForWriteE2PROM+1
 0042 30920300          sts _Current4_20mA+2+1,R3
 0046 20920200          sts _Current4_20mA+2,R2
 004A 06C0              xjmp L12
 004C           L11:
 004C                   .dbline 57
 004C           ;       else
 004C           ;               Current4_20mA.AdLo.Word=159;
 004C 8FE9              ldi R24,159
 004E 90E0              ldi R25,0
 0050 90930300          sts _Current4_20mA+2+1,R25
 0054 80930200          sts _Current4_20mA+2,R24
 0058           L12:
 0058                   .dbline 58
 0058           ;       if( ReadAPageFromE2PROMAndCheckIt(CurrentADHi_E2PROM) )
 0058 04E1              ldi R16,20
 005A 10E0              ldi R17,0
 005C 0E940000          xcall _ReadAPageFromE2PROMAndCheckIt
 0060 0023              tst R16
 0062 49F0              breq L15
 0064           X1:
 0064                   .dbline 59
 0064           ;               Current4_20mA.AdHi.Word=BufferForWriteE2PROM.SingleVariable.WritedVariable;//unsigned int
 0064 20900000          lds R2,_BufferForWriteE2PROM
 0068 30900100          lds R3,_BufferForWriteE2PROM+1
 006C 30920100          sts _Current4_20mA+1,R3
 0070 20920000          sts _Current4_20mA,R2
 0074 06C0              xjmp L16
 0076           L15:
 0076                   .dbline 61
 0076           ;       else
 0076           ;               Current4_20mA.AdHi.Word=798;
 0076 8EE1              ldi R24,798
 0078 93E0              ldi R25,3
 007A 90930100          sts _Current4_20mA+1,R25
 007E 80930000          sts _Current4_20mA,R24
 0082           L16:
 0082                   .dbline 62
 0082           ;       Current4_20mA.PvHi.Word=1000;
 0082 88EE              ldi R24,1000
 0084 93E0              ldi R25,3
 0086 90930500          sts _Current4_20mA+4+1,R25
 008A 80930400          sts _Current4_20mA+4,R24
 008E                   .dbline 63
 008E           ;       Current4_20mA.Pv=0;
 008E 2224              clr R2
 0090 3324              clr R3
 0092 30920B00          sts _Current4_20mA+10+1,R3
 0096 20920A00          sts _Current4_20mA+10,R2
 009A                   .dbline 64
 009A           ;       Current4_20mA.PvLo.Word=0;
 009A 30920700          sts _Current4_20mA+6+1,R3
 009E 20920600          sts _Current4_20mA+6,R2
 00A2                   .dbline 66
 00A2           ; 
 00A2           ;       if( ReadAPageFromE2PROMAndCheckIt(CurrentPvLo_E2PROM) )
 00A2 00E1              ldi R16,16
 00A4 10E0              ldi R17,0
 00A6 0E940000          xcall _ReadAPageFromE2PROMAndCheckIt
 00AA A02E              mov R10,R16
 00AC 0023              tst R16
 00AE 49F0              breq L20
 00B0           X2:
 00B0                   .dbline 67
 00B0           ;               OutputSignal.PvLo.Word=BufferForWriteE2PROM.SingleVariable.WritedVariable;//unsigned int
 00B0 20900000          lds R2,_BufferForWriteE2PROM
 00B4 30900100          lds R3,_BufferForWriteE2PROM+1
 00B8 30920700          sts _OutputSignal+6+1,R3
 00BC 20920600          sts _OutputSignal+6,R2
 00C0 06C0              xjmp L21
 00C2           L20:
 00C2                   .dbline 69
 00C2           ;       else
 00C2           ;               OutputSignal.PvLo.Word=15000;
 00C2 88E9              ldi R24,15000
 00C4 9AE3              ldi R25,58
 00C6 90930700          sts _OutputSignal+6+1,R25
 00CA 80930600          sts _OutputSignal+6,R24
 00CE           L21:
 00CE                   .dbline 70
 00CE           ;       if( ReadAPageFromE2PROMAndCheckIt(CurrentPvHi_E2PROM) )
 00CE 0CE0              ldi R16,12
 00D0 10E0              ldi R17,0
 00D2 0E940000          xcall _ReadAPageFromE2PROMAndCheckIt
 00D6 A02E              mov R10,R16
 00D8 0023              tst R16
 00DA 49F0              breq L24
 00DC           X3:
 00DC                   .dbline 71
 00DC           ;               OutputSignal.PvHi.Word=BufferForWriteE2PROM.SingleVariable.WritedVariable;//unsigned int
 00DC 20900000          lds R2,_BufferForWriteE2PROM
 00E0 30900100          lds R3,_BufferForWriteE2PROM+1
 00E4 30920500          sts _OutputSignal+4+1,R3
 00E8 20920400          sts _OutputSignal+4,R2
 00EC 06C0              xjmp L25
 00EE           L24:
 00EE                   .dbline 73
 00EE           ;       else
 00EE           ;               OutputSignal.PvHi.Word=50000;
 00EE 80E5              ldi R24,50000
 00F0 93EC              ldi R25,195
 00F2 90930500          sts _OutputSignal+4+1,R25
 00F6 80930400          sts _OutputSignal+4,R24
 00FA           L25:
 00FA                   .dbline 75
 00FA           ;       
 00FA           ;       if(OutputSignal.PvHi.Word<=OutputSignal.PvLo.Word)
 00FA 20900600          lds R2,_OutputSignal+6
 00FE 30900700          lds R3,_OutputSignal+6+1
 0102 40900400          lds R4,_OutputSignal+4
 0106 50900500          lds R5,_OutputSignal+4+1
 010A 2414              cp R2,R4
 010C 3504              cpc R3,R5
 010E 28F0              brlo L28
 0110           X4:
 0110                   .dbline 76
 0110           ;       SysErrorCode|=OUT_CURRENT_ERROR;
 0110 80910000          lds R24,_SysErrorCode
 0114 8061              ori R24,16
 0116 80930000          sts _SysErrorCode,R24
 011A           L28:
 011A                   .dbline 77
 011A           ;       OutputSignal.Adv=0;
 011A 2224              clr R2
 011C 3324              clr R3
 011E 30920900          sts _OutputSignal+8+1,R3
 0122 20920800          sts _OutputSignal+8,R2
 0126                   .dbline 78
 0126           ;       OutputSignal.AdHi.Word=1000;
 0126 88EE              ldi R24,1000
 0128 93E0              ldi R25,3
 012A 90930100          sts _OutputSignal+1,R25
 012E 80930000          sts _OutputSignal,R24
 0132                   .dbline 79
 0132           ;       OutputSignal.AdLo.Word=0;
 0132 30920300          sts _OutputSignal+2+1,R3
 0136 20920200          sts _OutputSignal+2,R2
 013A                   .dbline 81
 013A           ; 
 013A           ;       KeyContinusPressCount=0;
 013A 20920000          sts _KeyContinusPressCount,R2
 013E                   .dbline 82
 013E           ;       InterKeyTimer=InterKeyCOUNT1;
 013E 8EE1              ldi R24,30
 0140 80930000          sts _InterKeyTimer,R24
 0144                   .dbline 84
 0144           ; 
 0144           ;       No_key_count=0;
 0144 30920100          sts _No_key_count+1,R3
 0148 20920000          sts _No_key_count,R2
 014C                   .dbline 85
 014C           ;     SampleTimer=10;//100ms
 014C 8AE0              ldi R24,10
 014E 80930000          sts _SampleTimer,R24
 0152                   .dbline 86
 0152           ;       Current4_20mA.Pv=0;
 0152 30920B00          sts _Current4_20mA+10+1,R3
 0156 20920A00          sts _Current4_20mA+10,R2
 015A                   .dbline 88
 015A           ;       
 015A           ;       disp_flag=1;
 015A 81E0              ldi R24,1
 015C 80930000          sts _disp_flag,R24
 0160                   .dbline 89
 0160           ;       NeedModifyVariable=OutputSignal.Adv;
 0160 30920100          sts _NeedModifyVariable+1,R3
 0164 20920000          sts _NeedModifyVariable,R2
 0168                   .dbline 90
 0168           ;       NeedModifyVariableLowLimit=0;
 0168 30920100          sts _NeedModifyVariableLowLimit+1,R3
 016C 20920000          sts _NeedModifyVariableLowLimit,R2
 0170                   .dbline 91
 0170           ;       NeedModifyVariableHighLimit=1000;
 0170 88EE              ldi R24,232
 0172 90930100          sts _NeedModifyVariableHighLimit+1,R25
 0176 80930000          sts _NeedModifyVariableHighLimit,R24
 017A                   .dbline -2
 017A           L7:
 017A                   .dbline 0 ; func end
 017A A990              ld R10,y+
 017C 0895              ret
 017E                   .dbsym l i 1 c
 017E                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile C:\DOCUME~1\Administrator\桌面\手操器\task_init.c
 0000           _BufferForWriteE2PROM::
 0000                   .blkb 4
 0004                   .dbstruct 0 4 .6
 0004                   .dbfield 0 WritedVariable i
 0004                   .dbfield 2 Xor1 c
 0004                   .dbfield 3 Xor2 c
 0004                   .dbend
 0004                   .dbunion 0 4 .5
 0004                   .dbfield 0 E2PROMBuffer A[4:4]c
 0004                   .dbfield 0 SingleVariable S[.6]
 0004                   .dbend
 0004                   .dbsym e BufferForWriteE2PROM _BufferForWriteE2PROM S[.5]
 0004           ;               
 0004           ; } 

⌨️ 快捷键说明

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