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

📄 os_taskattemper.asm

📁 51上的RTOS
💻 ASM
字号:
/* $$$$$$$$$$$$$$$$$$   Copyrigth (c) $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$                                               
    File name: OS_TaskAttemper.asm
    Function describe:  system start entrance; timer 0 interrupt function  
    Compiler: Keil uVision2
    Version: 1.01                               
	                                                  Programmer: Shawyoo
                                                         最近修改日期:20040729
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    If you want to use standard main function,please change the
  const "USER_ENTRANCE=0"
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */
name                OS_TaskAttemper  

  USER_ENTRANCE     equ       1                 ;;//   
;;// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
IF(USER_ENTRANCE)          
         extrn      code(OSStart);
         cseg       at        0000h;
                    nop;
		    ljmp      OSStart;
ENDIF

;;// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
;;// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
        ;; #include   <Tick.h>   
        ;; extrn      number(T0H_INIT_VAL,T0L_INIT_VAL)
   T0H_INIT_VAL     equ       0dch
   T0L_INIT_VAL     equ       00h
         extrn      data(osTick);
         extrn      code(OSTaskSwitch);       
;;// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
         cseg       at        000BH;     ;;// Timer 0 interrupt entrance
		    nop;
		    nop;
		    ajmp      OSTaskAttemper;
;;// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
         public     ForceTaskSwitch;
         cseg       at        0050H;         
OSTaskAttemper:     nop;
                    nop;
                    push      ACC;
		    clr       IT0;
		    clr       TR0;
		    mov       a,TMOD;
		    orl       a,#01h;
		    mov       TMOD,a;		 
		    mov       TH0,#T0H_INIT_VAL;
		    mov       TL0,#T0L_INIT_VAL;
		    setb      TR0;               ;;// restart timer0
		    nop;	
                    ;;//////////////////////                                        
                    inc       osTick+1;          ;;// OS tick counter
                    mov       a,osTick+1;
                    jnz       NoCarry;                    
                    inc       osTick;
                    ;;//////////////////////
NoCarry:	    pop       ACC;
		    setb      EA;
ForceTaskSwitch:    nop;
		    ljmp      OSTaskSwitch;	    		    
;;// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

         public     TaskSwitchReturn;
         public     InterruptReturn;
InterruptReturn:                                      
TaskSwitchReturn:   nop;
                    nop;
                    reti;   

       ;// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                    END
      ;// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ End of file

⌨️ 快捷键说明

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