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

📄 os_cpu.c

📁 非剥夺型占先式minOS for Keil C51
💻 C
字号:
/*
*********************************************************************************************************
*                                      minOS 0.01v
*                                The Real-Time OS Kernel
*                                  All Rights Reserved
* File : OS_CPU.C
* 作者 : 21icbbs网友 LM7556 ,2004年7月   by : LM7556 , China , 2004-2004 
*
*********************************************************************************************************
*/

#define OS_CPU_GLOBALS
#include "OS_Includes.h"


//汇编宏_POPA_,_PUSHA_ 用于任务切换时保存和恢复现场。
#pragma ASM
		_POPA_	MACRO
				IRP	REG,	<7, 6, 5, 4, 3, 2, 1, 0, PSW, DPL, DPH, B, ACC>
				POP	REG
				ENDM
		ENDM

		_PUSHA_	MACRO
			IRP	REG,	<ACC, B, DPH, DPL, PSW, 0, 1, 2, 3, 4, 5, 6, 7>
			PUSH	REG
			ENDM
		ENDM
#pragma ENDASM

//;CPU specific definitions 
#define C51_CRYSTAL_FREQ   11059200ul
//;Determine the reload values for timer 0 this is automated by the next macro
#define T0_RELOAD  C51_CRYSTAL_FREQ / OS_TICKS_PER_SEC / 12
#define T0_RELOADH (65536 - (T0_RELOAD & 65535)) / 256
#define T0_RELOADL (65536 - (T0_RELOAD & 65535)) & 255
//Initial OS Timer for time ticks --- 初始化时间节拍定时器。
void InitOSTimer(void)
{
    TMOD=(TMOD & 0XF0) | 0X01;	/* Timer 0 working in MODE 1 */
    TH0=T0_RELOADH;     //设置Tick次/秒,

⌨️ 快捷键说明

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