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

📄 os_etos.lst

📁 义隆单片机上实现的任务调度
💻 LST
📖 第 1 页 / 共 5 页
字号:
    17            C                                                   /*       1: 1 BANK                                      */
    18            C                                                   /*       2: 2 BANK                                      */
    19            C                                                   /*       3: 4 BANK                                      */
    20       0001 C        OS_PAGE_NUM         ==        1            /*                    PAGE TYPE                         */                
    21            C                                                   /*       1: 1 PAGE                                      */
    22            C                                                   /*       2: 2 PAGE                                      */
    23            C                                                   /*       3: 3 PAGE                                      */
    24            C                                                    
    25            C        
    26            C        
    27       0008 C        OS_TASK_MAX         ==        8            /*                 MAX number of task                   */
    28            C        
    29       0000 C        OS_CRITICAL_TASK    ==        0            /*                  Critical   Task                     */
    30            C                                                   /*       0: disable           1: enable                 */
    31            C                                                   
    32            C        
    33            C        
    34            C                                                   
    35       0000 C        OS_RES_IR           ==        0            /*                  IR     Resources                    */
    36            C                                                   /*       0: disable           1: enable                 */
    37       0000 C        OS_RES_AD           ==        0            /*                  AD     Resources                    */
    38            C                                                   /*       0: disable           1: enable                 */
    39       0000 C        OS_RES_BUZ          ==        0            /*                  buzzer Resources                    */
    40            C                                                   /*       0: disable           1: enable                 */
    41       0000 C        OS_RES_DPY          ==        0            /*                  DPY    Resources                    */
    42            C                                                    
    43       0000 C        OS_RES_KEY          ==        0            /*                  KEY    Resources                    */
    44            C                                                   /*       0: disable           1: enable                 */
    45       0000 C        OS_RES_LED          ==        0            /*                  LED    Resources                    */
    46            C                                                   /*       0: disable           1: enable                 */
    47       0000 C        OS_RES_TM1628       ==        0            /*                  TM1628    Resources                 */
    48            C                                                   /*       0: disable           1: enable                 */
    49       0000 C        OS_BUZ_TYPE         ==        0            /*                  BUZ    TYPE                         */
    50            C                                                   /*       0: 有源              1: 无源                   */
    51       0000 C        OS_RES_BIN2BCD      ==        0            /*                  BIN2BCD    Resources                */
    52            C                                                   /*       0: disable           1: enable                 */
    53       0000 C        OS_FILTER_MEDIAN    ==        0            /*                     中值滤波                         */
    54            C                                                   /*       0: disable           1: enable                 */
    55       0000 C        OS_RES_2CLOLR       ==        0            /*                     双色LED                          */
    56            C                                                   /*       0: disable           1: enable                 */
    57       0000 C        OS_RES_RT_DETECT    ==        0            /*                  RC充放电测电阻(单线)              */
    58            C                                                   /*       0: disable           1: enable                 */
    59       0000 C        OS_RES_OUTPUT       ==        0            /*                       输出                           */
    60            C                                                   /*       0: disable           1: enable                 */
    61            C        
    62            C        
    63            C        
    64            C                                                                                              
    16                                    
    17                     
    18                     
    19                     if      OS_IC_TYPE == 0
    20                                    ORG             0X00
    21 00000 14FF                         jmp             start
    22                                    ORG             0x08
    23 00008 1409                         jmp             INT_TCC    
    24                     endif
    25                     
    26                     if      OS_IC_TYPE == 1           
    27                                    ORG             0x01
    28                                    jmp             int_tcc  
    29                                    ORG             0x1f
    30                                    jmp             int_tcc
    31                                    ORG             0x20              
    32                     endif
    33                     
    34                     if      OS_IC_TYPE == 2
    35                                    ORG            0X00
    36                                    jmp            start
    37                                    ORG            0x03
    38                                    jmp            int_external
    39                                    ORG            0x06
    40                                    jmp            int_p5_change
    41                                    ORG            0x09
    42                                    jmp            int_tcc  
    43                                    ORG            0x0c
    44                                    jmp            int_ad
    45                                    ORG            0x12
    46                                    jmp            int_hig_pulse
    47                                    ORG            0x15
    48                                    jmp            int_low_pulse
    49                                    ORG            0x18
    50                                    jmp            int_tcca
    51                                    ORG            0x1b
    52                                    jmp            int_tccb
    53                                    ORG            0x1e
    54                                    jmp            int_tccc
    55                                    ORG            0x20
    56                     endif
    57                     
    58                     IF   OS_RES_DPY  ==  1
    59                                    include         "USER_DPYTABLE.DT"
    60                     ENDIF
    61                                    
    62                                    include         "OS_INTERRUPT.dt"
     1            C        /*
     2            C        *********************************************************************************************************
     3            C        *                                     INTERRUPT PROCESSING
     4            C        *
     5            C        *              Description  :             Interrupt processing
     6            C        *              Oscillator   :             crystal 4.194304 MHz (4MHZ )
     7            C        *              TCC          :             1:4
     8            C        *              Interupt Time:             488.28125uS        (128uS)
     9            C        *              OSTick       :             3.90625              (4mS  ) 
    10            C        *
    11            C        *********************************************************************************************************
    12            C        */                   
    13            C        
    14 00009      C        INT_TCC:
    15            C      M                PUSHALL
       00009 005C     1     MOV  ABUFF ,A
       0000A 075C     1     SWAP  ABUFF ,
       0000B 0703     1     SWAPA  PSW ,
       0000C 005D     1     MOV  PSWBUFF ,A
       0000D 0704     1     SWAPA  R4 ,
       0000E 006F     1     MOV  R4BUFF ,A
                      2  M  PAGE  0 ,
       0000F 0943     2     BC  PSW , 5 
       00010 0983     2     BC  PSW , 6 
    16            C      M                PAGE            0 
       00011 0943     1     BC  PSW , 5 
       00012 0983     1     BC  PSW , 6 
    17            C      M                bank            0                                       
       00013 0984     1     BC  R4 , 6 
       00014 09C4     1     BC  R4 , 7 
    18            C        
    19            C        if      OS_IC_TYPE == 1           
    20            C                    ;   jbs             rf,0
    21            C                    ;   jmp             int_external                           ; external interrupt
    22            C        ENDIF
    23            C        
    24            C        ;--------------------------------------------------------------------- interrupt time 125us                
    25            C        IF   (OS_BUZ_TYPE == 1) && (OS_RES_BUZ == 1)
    26            C        int_buzzer_proc:                                                      ; buzzer process
    27            C                       jbs             reg_buz_cnt,6
    28            C                       jmp             int_buzzer_end
    29            C                       mov             a,@BUZ_DAT
    30            C                       xor             BUZ_PORT,a
    31            C        int_buzzer_end:        
    32            C        ENDIF               
    33            C        
    34            C        /*
    35            C        *********************************************************************************************************
    36            C        *                                      Critical Task
    37            C        *
    38            C        * 功能       :           时间要求非常高的任务,不受任务调度控制,直接用中断计时相应的时间进入。
    39            C        *                        对于其它代码采取互斥信号量解决重入问题,对com_port有操作的不循序执行。       
    40            C        *                 
    41            C        * 入口参数   :  none     每个大循环执行一次
    42            C        *                                   
    43            C        * 出口参数   :  none
    44            C        *********************************************************************************************************
    45            C        */
    46            C        
    47            C        IF      OS_CRITICAL_TASK == 1
    48            C        
    49            C        CriticalTask:              
    50            C                       inc             RegCritical
    51            C                       mov             a,RegCritical
    52            C                       and             a,@0x0f
    53            C                       xor             a,@4
    54            C                       jbs             psw,z
    55            C                       jmp             Critical_End
    56            C                       mov             a,@0xf0
    57            C                       and             RegCritical,a
    58            C                       bs              RegCritical,CRITICAL  
    59            C        Critical_End:
    60            C                       jbs             RegCritical,CRITICAL
    61            C                       jmp             Critical_No_Proc
    62            C                       jbc             RegCritical,OCCUPANCY
    63            C                       jmp             Critical_No_Proc
    64            C                       jmp             scan_dpy
    65            C        int_dpy_end:               
    66            C                       
    67            C                       
    68            C                       bc              RegCritical,CRITICAL
    69            C        Critical_No_Proc:
    70            C                       nop               
    71            C        ENDIF
    72            C        
    73            C        /*
    74            C        *********************************************************************************************************
    75            C        *                                      Real Time Clock
    76            C        *
    77            C        * 功能       :  系统的实时时钟。       
    78            C        *                 
    79            C        * 入口参数   :  none
    80            C        *                                   
    81            C        * 出口参数   :  rtc_sec,rtc_min,rtc_hour     系统的实时时钟
    82            C        *               OSTick                       系统的节拍
    83            C        *********************************************************************************************************
    84            C        */
    85            C        
    86 00015      C        rtc_proc:
    87 00015 0558 C                       inc             rtc_msec
    88 00016 181E C                       mov             a,@30
    89 00017 0318 C                       xor             a,rtc_msec
    90 00018 0E83 C                       jbs             psw,z               

⌨️ 快捷键说明

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