📄 task.lis
字号:
.module Task.c
.area lit(rom, con, rel)
0000 _LcdWindowFunc::
0000 00 .byte 0
0001 0800 .word PL_LCD_Window0_Process
0003 01 .byte 1
0004 0600 .word PL_LCD_Window1_Process
0006 02 .byte 2
0007 0400 .word PL_LCD_Window2_Process
0009 03 .byte 3
000A 0200 .word PL_LCD_Window3_Process
000C 04 .byte 4
000D 0000 .word PL_LCD_Window4_Process
000F .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LCD菜单系统设计\Task.c
000F .dbsym e LcdWindowFunc _LcdWindowFunc A[15:5]kX
.area data(ram, con, rel)
0000 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LCD菜单系统设计\Task.c
0000 _bWindowIndex::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LCD菜单系统设计\Task.c
0001 .dbsym e bWindowIndex _bWindowIndex c
0001 _bWindowIndexPre::
0001 .blkb 1
.area idata
0001 FF .byte 255
.area data(ram, con, rel)
0002 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LCD菜单系统设计\Task.c
0002 .dbsym e bWindowIndexPre _bWindowIndexPre c
.area text(rom, con, rel)
0000 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LCD菜单系统设计\Task.c
0000 .dbfunc e LCD_Task_Init _LCD_Task_Init fV
.even
0000 _LCD_Task_Init::
0000 .dbline -1
0000 .dbline 41
0000 ; //***************************************************************
0000 ; // File Name : Task.c
0000 ; // Author : Steaven
0000 ; // Created : 2008-06-09
0000 ; // Modified :
0000 ; // Revision : V0.0
0000 ; //***************************************************************
0000 ;
0000 ; #include "app.h"
0000 ;
0000 ; //constant definition
0000 ; #define cLcdWindowMax 5 //Max of Display Page
0000 ;
0000 ; //LCD Display Window List
0000 ; const struct lcdwindowfunc
0000 ; {
0000 ; INT8U bLcdWindowIndex;
0000 ; void (*WinExe)();
0000 ; }LcdWindowFunc[cLcdWindowMax]=
0000 ; {
0000 ; 0,LCD_Window0_Process,
0000 ; 1,LCD_Window1_Process,
0000 ; 2,LCD_Window2_Process,
0000 ; 3,LCD_Window3_Process,
0000 ; 4,LCD_Window4_Process,
0000 ; };
0000 ;
0000 ; //globla variables
0000 ; INT16U wLCD_Event; //Event for LCD Task
0000 ; INT16U wGEN_Event; //Event for GEN Task
0000 ; INT8U bWindowIndex = 0; //Current Window Index
0000 ; INT8U bWindowIndexPre = 0xFF; //Last Window Index
0000 ;
0000 ; //***************************************************************
0000 ; // Function : LCD_Task_Init
0000 ; // Input : none
0000 ; // Output : none
0000 ; // Description : LCD Task Initialization
0000 ; //***************************************************************
0000 ; void LCD_Task_Init(void)
0000 ; {
0000 .dbline 43
0000 ; //LCD Display Initialization
0000 ; LCD_Init();
0000 0E940000 xcall _LCD_Init
0004 .dbline 45
0004 ; //Get Database Length
0004 ; wDataBaseLength = Initial_DataBaseLength();
0004 0E940000 xcall _Initial_DataBaseLength
0008 10930100 sts _wDataBaseLength+1,R17
000C 00930000 sts _wDataBaseLength,R16
0010 .dbline -2
0010 .dbline 46
0010 ; }
0010 L1:
0010 .dbline 0 ; func end
0010 0895 ret
0012 .dbend
0012 .dbfunc e GEN_Task_Init _GEN_Task_Init fV
.even
0012 _GEN_Task_Init::
0012 .dbline -1
0012 .dbline 55
0012 ;
0012 ; //***************************************************************
0012 ; // Function : GEN_Task_Init
0012 ; // Input : none
0012 ; // Output : none
0012 ; // Description : GEN Task Initialization
0012 ; //***************************************************************
0012 ; void GEN_Task_Init(void)
0012 ; {
0012 .dbline 57
0012 ; //Set Initial Time
0012 ; sInit_Calendar();
0012 .dbline -2
0012 .dbline 58
0012 ; }
0012 L2:
0012 .dbline 0 ; func end
0012 0C940000 xjmp _sInit_Calendar
0016 .dbend
0016 .dbfunc e LCD_Task _LCD_Task fV
.even
0016 _LCD_Task::
0016 .dbline -1
0016 .dbline 67
0016 ;
0016 ; //***************************************************************
0016 ; // Function : LCD_Task
0016 ; // Input : none
0016 ; // Output : none
0016 ; // Description : LCD Task Process
0016 ; //***************************************************************
0016 ; void LCD_Task(void)
0016 ; {
0016 .dbline 68
0016 ; LcdWindowFunc[bWindowIndex].WinExe();
0016 20900000 lds R2,_bWindowIndex
001A 83E0 ldi R24,3
001C 829D mul R24,R2
001E F001 movw R30,R0
0020 80E0 ldi R24,<_LcdWindowFunc+1
0022 90E0 ldi R25,>_LcdWindowFunc+1
0024 E80F add R30,R24
0026 F91F adc R31,R25
0028 0590 lpm R0,Z+
002A 1490 lpm R1,Z
002C F001 movw R30,R0
002E 0E940000 xcall xicall
0032 .dbline -2
0032 .dbline 69
0032 ; }
0032 L3:
0032 .dbline 0 ; func end
0032 0895 ret
0034 .dbend
.area data(ram, con, rel)
0002 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LCD菜单系统设计\Task.c
0002 L6:
0002 .blkb 1
.area idata
0002 00 .byte 0
.area data(ram, con, rel)
0003 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LCD菜单系统设计\Task.c
.area text(rom, con, rel)
0034 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LCD菜单系统设计\Task.c
0034 .dbfunc e GEN_Task _GEN_Task fV
0034 .dbsym s bCount0 L6 c
.even
0034 _GEN_Task::
0034 .dbline -1
0034 .dbline 78
0034 ;
0034 ; //***************************************************************
0034 ; // Function : GEN_Task
0034 ; // Input : none
0034 ; // Output : none
0034 ; // Description : GEN Task Process
0034 ; //***************************************************************
0034 ; void GEN_Task(void)
0034 ; {
0034 2AC0 xjmp L8
0036 L7:
0036 .dbline 81
0036 ; static INT8U bCount0 = 0;
0036 ; while(1)
0036 ; {
0036 .dbline 82
0036 ; if(OS_Task_Switch(cPrioGEN) == true)
0036 01E0 ldi R16,1
0038 0E940000 xcall _OS_Task_Switch
003C 0130 cpi R16,1
003E E0E0 ldi R30,0
0040 1E07 cpc R17,R30
0042 09F4 brne L10
0044 .dbline 83
0044 ; {
0044 .dbline 84
0044 ; return;
0044 23C0 xjmp L5
0046 L10:
0046 .dbline 86
0046 ; }
0046 ; wGEN_Event = OS_Event_Pend(cPrioGEN);
0046 01E0 ldi R16,1
0048 0E940000 xcall _OS_Event_Pend
004C 10930100 sts _wGEN_Event+1,R17
0050 00930000 sts _wGEN_Event,R16
0054 .dbline 87
0054 ; if(wGEN_Event == 0)
0054 0030 cpi R16,0
0056 0107 cpc R16,R17
0058 09F4 brne L12
005A X0:
005A .dbline 88
005A ; {
005A .dbline 89
005A ; return;
005A 18C0 xjmp L5
005C L12:
005C .dbline 91
005C ; }
005C ; if(wGEN_Event & (1 << eGENTimer))
005C 20900000 lds R2,_wGEN_Event
0060 30900100 lds R3,_wGEN_Event+1
0064 20FE sbrs R2,0
0066 11C0 rjmp L14
0068 .dbline 92
0068 ; {
0068 .dbline 94
0068 ; //Key Detection
0068 ; Key_Detection();
0068 0E940000 xcall _Key_Detection
006C .dbline 96
006C ; //Calendar Update
006C ; if(bCount0++ >= 50)
006C 20900200 lds R2,L6
0070 3324 clr R3
0072 822D mov R24,R2
0074 8F5F subi R24,255 ; addi 1
0076 80930200 sts L6,R24
007A 822D mov R24,R2
007C 8233 cpi R24,50
007E 28F0 brlo L16
0080 .dbline 97
0080 ; {
0080 .dbline 98
0080 ; bCount0 = 0;
0080 2224 clr R2
0082 20920200 sts L6,R2
0086 .dbline 99
0086 ; Calendar_Update();
0086 0E940000 xcall _Calendar_Update
008A .dbline 100
008A ; }
008A L16:
008A .dbline 101
008A ; }
008A L14:
008A .dbline 102
008A L8:
008A .dbline 80
008A D5CF xjmp L7
008C X1:
008C .dbline -2
008C .dbline 103
008C ; }
008C ; }
008C L5:
008C .dbline 0 ; func end
008C 0895 ret
008E .dbend
008E .dbfunc e Task_Init _Task_Init fV
.even
008E _Task_Init::
008E .dbline -1
008E .dbline 112
008E ;
008E ; //******************************************************************************
008E ; // Function : Task_Init
008E ; // Input : none
008E ; // Output : none
008E ; // Description : Standard function format,put all tasks Initialization here
008E ; //******************************************************************************
008E ; void Task_Init(void)
008E ; {
008E .dbline 113
008E ; LCD_Task_Init();
008E B8DF xcall _LCD_Task_Init
0090 .dbline 114
0090 ; GEN_Task_Init();
0090 .dbline -2
0090 .dbline 115
0090 ; }
0090 L18:
0090 .dbline 0 ; func end
0090 C0CF xjmp _GEN_Task_Init
0092 .dbend
0092 .dbfunc e Task_Start _Task_Start fV
.even
0092 _Task_Start::
0092 .dbline -1
0092 .dbline 124
0092 ;
0092 ; //******************************************************************************
0092 ; // Function : Task_Start
0092 ; // Input : none
0092 ; // Output : none
0092 ; // Description : Standard function format,put all tasks into while(1)
0092 ; //******************************************************************************
0092 ; void Task_Start(void)
0092 ; {
0092 02C0 xjmp L21
0094 L20:
0094 .dbline 126
0094 .dbline 127
0094 C0DF xcall _LCD_Task
0096 .dbline 128
0096 CEDF xcall _GEN_Task
0098 .dbline 129
0098 L21:
0098 .dbline 125
0098 FDCF xjmp L20
009A X2:
009A .dbline -2
009A .dbline 130
009A ; while(1)
009A ; {
009A ; LCD_Task();
009A ; GEN_Task();
009A ; }
009A ; }
009A L19:
009A .dbline 0 ; func end
009A 0895 ret
009C .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LCD菜单系统设计\Task.c
0000 _wGEN_Event::
0000 .blkb 2
0002 .dbsym e wGEN_Event _wGEN_Event i
0002 _wLCD_Event::
0002 .blkb 2
0004 .dbsym e wLCD_Event _wLCD_Event i
.area func_lit
0000 0000 PL_LCD_Window4_Process: .word `_LCD_Window4_Process
0002 0000 PL_LCD_Window3_Process: .word `_LCD_Window3_Process
0004 0000 PL_LCD_Window2_Process: .word `_LCD_Window2_Process
0006 0000 PL_LCD_Window1_Process: .word `_LCD_Window1_Process
0008 0000 PL_LCD_Window0_Process: .word `_LCD_Window0_Process
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -