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

📄 task.lis

📁 AVR单片机C语言程序设计实例精粹
💻 LIS
📖 第 1 页 / 共 3 页
字号:
                        .module Task.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\多任务模拟系统设计\Task.c
 0000                   .dbfunc e Task1_Init _Task1_Init fV
                        .even
 0000           _Task1_Init::
 0000                   .dbline -1
 0000                   .dbline 28
 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           ; //local function declaration
 0000           ; void Task1_Init(void);
 0000           ; void Task2_Init(void);
 0000           ; void Task3_Init(void);
 0000           ; void Task4_Init(void);
 0000           ; void Task1(void);
 0000           ; void Task2(void);
 0000           ; void Task3(void);
 0000           ; void Task4(void);
 0000           ; 
 0000           ; //******************************************************************************
 0000           ; // Function    : Task1_Init
 0000           ; // Input       : none
 0000           ; // Output      : none
 0000           ; // Description : Initialization of task1,off LED1
 0000           ; //******************************************************************************
 0000           ; void Task1_Init(void)
 0000           ; {
 0000                   .dbline 29
 0000           ;       LED_OFF(cLED1);
 0000 04E0              ldi R16,4
 0002                   .dbline -2
 0002                   .dbline 30
 0002           ; }
 0002           L1:
 0002                   .dbline 0 ; func end
 0002 0C940000          xjmp _LED_OFF
 0006                   .dbend
 0006                   .dbfunc e Task2_Init _Task2_Init fV
                        .even
 0006           _Task2_Init::
 0006                   .dbline -1
 0006                   .dbline 39
 0006           ; 
 0006           ; //******************************************************************************
 0006           ; // Function    : Task2_Init
 0006           ; // Input       : none
 0006           ; // Output      : none
 0006           ; // Description : Initialization of task2,off LED2
 0006           ; //******************************************************************************
 0006           ; void Task2_Init(void)
 0006           ; {
 0006                   .dbline 40
 0006           ;       LED_OFF(cLED2);
 0006 05E0              ldi R16,5
 0008                   .dbline -2
 0008                   .dbline 41
 0008           ; }
 0008           L2:
 0008                   .dbline 0 ; func end
 0008 0C940000          xjmp _LED_OFF
 000C                   .dbend
 000C                   .dbfunc e Task3_Init _Task3_Init fV
                        .even
 000C           _Task3_Init::
 000C                   .dbline -1
 000C                   .dbline 50
 000C           ; 
 000C           ; //******************************************************************************
 000C           ; // Function    : Task3_Init
 000C           ; // Input       : none
 000C           ; // Output      : none
 000C           ; // Description : Initialization of task3,off LED3
 000C           ; //******************************************************************************
 000C           ; void Task3_Init(void)
 000C           ; {
 000C                   .dbline 51
 000C           ;       LED_OFF(cLED3);
 000C 06E0              ldi R16,6
 000E                   .dbline -2
 000E                   .dbline 52
 000E           ; }
 000E           L3:
 000E                   .dbline 0 ; func end
 000E 0C940000          xjmp _LED_OFF
 0012                   .dbend
 0012                   .dbfunc e Task4_Init _Task4_Init fV
                        .even
 0012           _Task4_Init::
 0012                   .dbline -1
 0012                   .dbline 61
 0012           ; 
 0012           ; //******************************************************************************
 0012           ; // Function    : Task4_Init
 0012           ; // Input       : none
 0012           ; // Output      : none
 0012           ; // Description : Initialization of task4,off LED4
 0012           ; //******************************************************************************
 0012           ; void Task4_Init(void)
 0012           ; {
 0012                   .dbline 62
 0012           ;       LED_OFF(cLED4);
 0012 07E0              ldi R16,7
 0014                   .dbline -2
 0014                   .dbline 63
 0014           ; }
 0014           L4:
 0014                   .dbline 0 ; func end
 0014 0C940000          xjmp _LED_OFF
 0018                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\多任务模拟系统设计\Task.c
 0000           L6:
 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\多任务模拟系统设计\Task.c
                        .area text(rom, con, rel)
 0018                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\多任务模拟系统设计\Task.c
 0018                   .dbfunc e Task1 _Task1 fV
 0018                   .dbsym s bKey_Status L6 c
 0018           ;    wTask_Event -> R20,R21
                        .even
 0018           _Task1::
 0018 0E940000          xcall push_gset1
 001C                   .dbline -1
 001C                   .dbline 72
 001C           ; 
 001C           ; //******************************************************************************
 001C           ; // Function    : Task1
 001C           ; // Input       : none
 001C           ; // Output      : none
 001C           ; // Description : Task1 process,Control LED1
 001C           ; //******************************************************************************
 001C           ; void Task1(void)
 001C           ; {
 001C 42C0              xjmp L8
 001E           L7:
 001E                   .dbline 76
 001E           ;       INT16U wTask_Event;
 001E           ;     static INT8U bKey_Status = cOFF_Status;
 001E           ;     while(1)
 001E           ;       {
 001E                   .dbline 78
 001E           ;               //task switch
 001E           ;               if(OS_Task_Switch(cPrioTask1) == true)
 001E 0027              clr R16
 0020 0E940000          xcall _OS_Task_Switch
 0024 0130              cpi R16,1
 0026 E0E0              ldi R30,0
 0028 1E07              cpc R17,R30
 002A 09F4              brne L10
 002C                   .dbline 79
 002C           ;               {
 002C                   .dbline 80
 002C           ;                       return;
 002C 3BC0              xjmp L5
 002E           L10:
 002E                   .dbline 83
 002E           ;               }
 002E           ;               //get event
 002E           ;               wTask_Event = OS_Event_Pend(cPrioTask1);
 002E 0027              clr R16
 0030 0E940000          xcall _OS_Event_Pend
 0034 A801              movw R20,R16
 0036                   .dbline 85
 0036           ;         //event check
 0036           ;         if(wTask_Event == 0)
 0036 0030              cpi R16,0
 0038 0107              cpc R16,R17
 003A 09F4              brne L12
 003C           X0:
 003C                   .dbline 86
 003C           ;         {
 003C                   .dbline 87
 003C           ;             return;
 003C 33C0              xjmp L5
 003E           L12:
 003E                   .dbline 90
 003E           ;         }
 003E           ;               //event parsing : timer event
 003E           ;               if(wTask_Event & (1 << eTask1_Timer))
 003E 40FF              sbrs R20,0
 0040 17C0              rjmp L14
 0042                   .dbline 91
 0042           ;               {
 0042                   .dbline 92
 0042           ;                       if(bKey_Status == cOFF_Status)
 0042 20900000          lds R2,L6
 0046 2220              tst R2
 0048 21F4              brne L16
 004A                   .dbline 93
 004A           ;                       {
 004A                   .dbline 94
 004A           ;                               LED_OFF(cLED1);
 004A 04E0              ldi R16,4
 004C 0E940000          xcall _LED_OFF
 0050                   .dbline 95
 0050           ;                       }
 0050 0FC0              xjmp L17
 0052           L16:
 0052                   .dbline 96
 0052           ;                       else if(bKey_Status == cON_Status)
 0052 80910000          lds R24,L6
 0056 8130              cpi R24,1
 0058 21F4              brne L18
 005A                   .dbline 97
 005A           ;                       {
 005A                   .dbline 98
 005A           ;                               LED_ON(cLED1);
 005A 04E0              ldi R16,4
 005C 0E940000          xcall _LED_ON
 0060                   .dbline 99
 0060           ;                       }
 0060 07C0              xjmp L19
 0062           L18:
 0062                   .dbline 100
 0062           ;                       else if(bKey_Status == cTOGGLE_Status)
 0062 80910000          lds R24,L6
 0066 8230              cpi R24,2
 0068 19F4              brne L20
 006A                   .dbline 101
 006A           ;                       {
 006A                   .dbline 102
 006A           ;                               LED_TOGGLE(cLED1);
 006A 04E0              ldi R16,4
 006C 0E940000          xcall _LED_TOGGLE
 0070                   .dbline 103
 0070           ;                       }
 0070           L20:
 0070           L19:
 0070           L17:
 0070                   .dbline 104
 0070           ;               }
 0070           L14:
 0070                   .dbline 106
 0070           ;               //event parsing : key event
 0070           ;               if(wTask_Event & (1 << eTask1_Key))
 0070 41FF              sbrs R20,1
 0072 17C0              rjmp L22
 0074                   .dbline 107
 0074           ;               {
 0074                   .dbline 108
 0074           ;                       if(bKey_Status == cOFF_Status)
 0074 20900000          lds R2,L6
 0078 2220              tst R2
 007A 21F4              brne L24
 007C                   .dbline 109
 007C           ;                       {
 007C                   .dbline 110
 007C           ;                               bKey_Status = cTOGGLE_Status;
 007C 82E0              ldi R24,2
 007E 80930000          sts L6,R24
 0082                   .dbline 111
 0082           ;                       }
 0082 0FC0              xjmp L25
 0084           L24:
 0084                   .dbline 112
 0084           ;                       else if(bKey_Status == cTOGGLE_Status)
 0084 80910000          lds R24,L6
 0088 8230              cpi R24,2
 008A 21F4              brne L26
 008C                   .dbline 113
 008C           ;                       {
 008C                   .dbline 114
 008C           ;                               bKey_Status = cOFF_Status;
 008C 2224              clr R2
 008E 20920000          sts L6,R2
 0092                   .dbline 115
 0092           ;                       }
 0092 07C0              xjmp L27
 0094           L26:
 0094                   .dbline 116
 0094           ;                       else if(bKey_Status == cON_Status)
 0094 80910000          lds R24,L6
 0098 8130              cpi R24,1
 009A 19F4              brne L28
 009C                   .dbline 117
 009C           ;                       {
 009C                   .dbline 118
 009C           ;                               bKey_Status = cOFF_Status;
 009C 2224              clr R2
 009E 20920000          sts L6,R2
 00A2                   .dbline 119
 00A2           ;                       }
 00A2           L28:
 00A2           L27:
 00A2           L25:
 00A2                   .dbline 120
 00A2           ;               }
 00A2           L22:
 00A2                   .dbline 121
 00A2           L8:
 00A2                   .dbline 75
 00A2 BDCF              xjmp L7
 00A4           X1:
 00A4                   .dbline -2
 00A4                   .dbline 122

⌨️ 快捷键说明

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