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

📄 delay.h

📁 ZLG522S的功能、硬件接口和ZLG500S相同
💻 H
字号:
/***************************************************************************
							延时程序模块

本延时模块采用T2作为定时器,可提供中断定时和非中断定时两种定时方式。
使用延时模块要注意三个问题:
1、	一定要在项目的main.h文件中正确定义振荡器频率OSC_FEQ,如:
#define OSC_FREQ		22118400L
要注意所用单片机的指令周期与晶振主频问题,
例如晶振频率为11.0592MHz,若指令周期为6clock,则必须定义成:22118400L;
						若指令周期为12clock,则必须定义成:11059200L。
2、	在delay.h文件中定义所需要使用的功能函数。
3、本模块已应用于MFRC500程序模块,若要修改使用必须小心行事。
***************************************************************************/
#ifdef delay_GLOBALS
	#define	delay_EXT
#else
	#define	delay_EXT	extern
#endif

//define function enable
#ifdef delay_GLOBALS
	#define	delay_50us_en		0
	#define delay_1ms_en		0
	#define delay_10ms_en		0
	#define T2int_timeout_en	1
	#define delay_T0_en			0
#endif

//delay_EXT INT8U	RC500_overcnt;	// 必须为每个需要延时的对象定义一个超时计数器
#define COMMFLASHTM		10


// Timer 2 (modify OSC_FREQ if another crystal frequency is used)
//必须在主函数头文件中定义晶振频率
#define RCAP2_50us             65536L - OSC_FREQ/240417L
#define RCAP2_1ms              65536L - OSC_FREQ/12021L
#define RCAP2_5ms              65536L - OSC_FREQ/2400L
#define RCAP2_10ms             65536L - OSC_FREQ/1200L

sfr16   RCAP2LH = 0xCA;
sfr16   T2LH    = 0xCC;

delay_EXT void delay_50us(INT8U _50us);
delay_EXT void delay_1ms(INT16U _1ms);
delay_EXT void delay_10ms(INT16U _10ms);
delay_EXT void T2_timeout_init(INT16U resolution);
delay_EXT void delay_T0(INT16U _T0HL);

//定义T0定时时间
#define T0HL_100us			65536L - OSC_FREQ/120000L
#define T0HL_1ms			65536L - OSC_FREQ/12000L
#define T0HL_3ms			65536L - OSC_FREQ/4000L
#define T0HL_10ms			65536L - OSC_FREQ/1200L
//delay_EXT	void stop_timeout(void);


⌨️ 快捷键说明

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