📄 os_cpu.h
字号:
/*------------------------------------------------------------------*-
OS_cpu.H (v1.01)
------------------------------------------------------------------
'Project Header' (see Chap 9) for project IO_T2_T1 (see Chap 18)
COPYRIGHT
---------
This code is from the book:
PATTERNS FOR TIME-TRIGGERED EMBEDDED SYSTEMS by Michael J. Pont
[Pearson Education, 2001; ISBN: 0-201-33138-1].
This code is copyright (c) 2001 by Michael J. Pont.
See book for copyright details and other information.
-*------------------------------------------------------------------*/
#ifndef _OS_CPU_H
#define _OS_CPU_H
//------------------------------------------------------------------
// WILL NEED TO EDIT THIS SECTION FOR EVERY PROJECT
//------------------------------------------------------------------
// Must include the appropriate microcontroller header file here
// Use CPU=AT89x52
//#include <AT89x52.h>
// Use CPU=STC89C58RD+
#include <stc/STC89C51.h>
// Use AT89C51RC
//#include <REG52.H>
#ifdef __REG52_H__
sfr AUXR = 0x8E; // AT89C51RC use
sfr T2MOD = 0xC9;
#endif
// Include oscillator / chip details here
// (essential if generic delays / timeouts are used)
// -
// Oscillator / resonator frequency (in Hz) e.g. (11059200UL)
//#define OSC_FREQ (11059200UL)
#define OSC_FREQ (22118400UL)
//#define OSC_FREQ (33177600UL)
// Number of oscillations per instruction (4, 6 or 12)
// 12 - Original 8051 / 8052 and numerous modern versions
// 6 - Various Infineon and Philips devices, etc.
// 4 - Dallas, etc.
//
// Take care with Dallas devices
// - Timers default to *12* osc ticks unless CKCON is modified
// - If using generic code on a Dallas device, use 12 here
#define OSC_PER_INST (6)
#define mFosc_Tick (5) // 系统心跳5ms/tick
//------------------------------------------------------------------
// Interrupts
// - see Chapter 13.
//------------------------------------------------------------------
// Generic 8051/52 timer interrupts (used in most schedulers)
#define INTERRUPT_Timer_0_Overflow 1
#define INTERRUPT_Timer_1_Overflow 3
#define INTERRUPT_Timer_2_Overflow 5
// Additional interrupts (used in shared-clock schedulers)
#define INTERRUPT_EXTERNAL_0 0
#define INTERRUPT_EXTERNAL_1 2
#define INTERRUPT_UART_Rx_Tx 4
#define INTERRUPT_CAN_c515c 17
// use STC89xx
#define ALE_OFF() AUXR |= B0000_0001; // close ALE out
#define EXRAM_OFF() AUXR |= B0000_0010; // close read EXTRAM
#define EXRAM_ON() AUXR &= B1111_1101; // open read EXTRAM
#define OS_ENTER_CRITICAL() EA = 0; //关中断
#define OS_EXIT_CRITICAL() EA = 1; //开中断
//------------------------------------------------------------------
// typedef data type
//------------------------------------------------------------------
#define bitb bit bdata
#define ulong unsigned long
#define uint unsigned int
#define uchar unsigned char
#define ulongd unsigned long data
#define uintd unsigned int data
#define uchard unsigned char data
#define ulongb unsigned long bdata
#define uintb unsigned int bdata
#define ucharb unsigned char bdata
#define ulongi unsigned long idata
#define uinti unsigned int idata
#define uchari unsigned char idata
#define ulongp unsigned long pdata
#define uintp unsigned int pdata
#define ucharp unsigned char pdata
#define ulongx unsigned long xdata
#define uintx unsigned int xdata
#define ucharx unsigned char xdata
#define ulongc unsigned long code
#define uintc unsigned int code
#define ucharc unsigned char code
#define INT32U unsigned long
#define INT16U unsigned int
#define INT8U unsigned char
#define INT32U_DATA unsigned long data
#define INT16U_DATA unsigned int data
#define INT8U_DATA unsigned char data
#define INT32U_BDATA unsigned long bdata
#define INT16U_BDATA unsigned int bdata
#define INT8U_BDATA unsigned char bdata
#define INT32U_IDATA unsigned long idata
#define INT16U_IDATA unsigned int idata
#define INT8U_IDATA unsigned char idata
#define INT32U_PDATA unsigned long pdata
#define INT16U_PDATA unsigned int pdata
#define INT8U_PDATA unsigned char pdata
#define INT32U_XDATA unsigned long xdata
#define INT16U_XDATA unsigned int xdata
#define INT8U_XDATA unsigned char xdata
#define INT32U_CODE unsigned long code
#define INT16U_CODE unsigned int code
#define INT8U_CODE unsigned char code
typedef unsigned char tByte;
typedef unsigned int tWord;
typedef unsigned long tLong;
typedef float tFloat;
#define tBOOL bit
#define tExtData xdata
#define tInData idata
#define tAutoData data
#define mREENTRANT reentrant
#define TRUE 1
#define FALSE 0
#define HIGH 1
#define LOW 0
#define ON 0
#define OFF 1
#define mR 1
#define mW 0
#endif
/*------------------------------------------------------------------*-
---- END OF FILE -------------------------------------------------
-*------------------------------------------------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -