📄 os_cpu.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 + -