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

📄 tick16.s

📁 ucos在所有cpu下的移植范例
💻 S
字号:
*---------------------------------------------------------------------
*                                    uCOS
*            Microcomputer Real-Time Multitasking Operating System
*                                   KERNEL
*             (c) Copyright 1992, Jean J. Labrosse, Plantation, FL
*                              All Rights Reserved
*
*	void tick16_isr(void)
*
*       FUNCTION:
*           This is an interrupt handler that is used by uCOS kernal
*           for the real-time clock.
*
*	CREATED:
*           March 15, 1994 by Gary Schneider
*
*       INPUTS:
*            None
*
*       OUTPUTS:
*            None
*
*       REGISTERS MODIFIED:
*            None - all registers saved on stack
*-------------------------------------------------------------------------


	lib	   bankmac.mac	  * bank macros

        import     CPU16_GPT_START
	import     CPU16_TFLG1_OFF
	import     CPU16_TOC2_OFF
        import     OSIntEnter
        import     OSTimeTick
        import     OSIntExit
	export     tick16_isr

        section		.text

tick16_isr:
        PSHM   D,E,X,Y,Z,K       * Save Acc D,E and all index regs. 
        ORP    #$0E0             * don't allow interrupts until we clear flag
	ldxxk  CPU16_GPT_START
	LDD    <CPU16_TFLG1_OFF,x
        ANDD   #$0EFFF		 * clear OC2 interrupt flag bit
	STD    <CPU16_TFLG1_OFF,x
	LDD    <CPU16_TOC2_OFF,x
        ADDD   #$0CCD		 * adjust for next tick
	STD    <CPU16_TOC2_OFF,x
        ANDP   #$01F             * allow interrupt nesting
	LDAB   #$0		 * clear XK for the following function calls
	TBXK
        JSR    OSIntEnter        * Notify uC/OS about ISR
        JSR    OSTimeTick        * Handle system tick
        JSR    OSIntExit         * Exit uC/OS through scheduler if HPT ready

	PULM   D,E,X,Y,Z,K

	RTI			 * return to interrupted task

⌨️ 快捷键说明

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