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

📄 int_serv.h

📁 MEGA32L 单片机的按键,LED,LCD等测试例程,ICCAVR编译器
💻 H
字号:
//======================================
//中断服务程序的头文件
//FileName =int_serv.h
//Date Time=20071229
//======================================
#include"public.h"

#ifndef	_INT_SERV_H_
#define	_INT_SERV_H_

//--------------------------------------
//硬件引脚和操作代码宏定义
//--------------------------------------
#define	HD_28J60_INT_INT0	PD2	//28J60输入中断INT
#define	HD_28J60_WOL_INT1	PD3	//28J60输入中断WOL

#define	CODE_28J60_INT_HIGH	PORTD |= BIT(HD_28J60_INT_INT0)
#define	CODE_28J60_INT_LOW	PORTD &= ~BIT(HD_28J60_INT_INT0)

#define	CODE_28J60_WOL_HIGH	PORTD |= BIT(HD_28J60_WOL_INT1)
#define	CODE_28J60_WOL_LOW	PORTD &= ~BIT(HD_28J60_WOL_INT1)

#define	CODE_GET_28J60_INT	(PIND &BIT(HD_28J60_INT_INT0))
#define	CODE_GET_28J60_WOL	(PIND &BIT(HD_28J60_WOL_INT1))
#define	CODE_GET_28J60_INT_WOL	(PIND &(BIT(HD_28J60_WOL_INT1) |BIT(HD_28J60_INT_INT0)))

//--------------------------------------
//常数的定义
//--------------------------------------
#define	CONST_TIMER0_INT_TIMES_UNIT	2	//Timer0的定时时间(可取1/2),单位:ms

#define	CONST_BYTE_TIMER0_CLOCK_DIV_SET	64	//定时器0的时钟分频设置,1/8/64、256/1024分频

#define	CONST_NOPS_OF_1MS		(uchar)((uint)(1000L *SYS_FREQ_MHZ) /CONST_BYTE_TIMER0_CLOCK_DIV_SET)	//1毫秒内的NOP数
//注意计算值的溢出!
#define	CONST_UINT_TIMER0_RELOAD_VALUE	(uchar)(256 -CONST_NOPS_OF_1MS*CONST_TIMER0_INT_TIMES_UNIT)	//1ms定时的重装时间计数值

#if (CONST_BYTE_TIMER0_CLOCK_DIV_SET ==1)
	#define	CONST_BYTE_TCCR0_VALUE		BIT(CS00)
	
#elif (CONST_BYTE_TIMER0_CLOCK_DIV_SET ==8)
	#define	CONST_BYTE_TCCR0_VALUE		BIT(CS01)
	
#elif (CONST_BYTE_TIMER0_CLOCK_DIV_SET ==64)
	#define	CONST_BYTE_TCCR0_VALUE		(BIT(CS01) |BIT(CS00) )
	
#elif (CONST_BYTE_TIMER0_CLOCK_DIV_SET ==256)
	#define	CONST_BYTE_TCCR0_VALUE		BIT(CS02)
	
#elif (CONST_BYTE_TIMER0_CLOCK_DIV_SET ==1024)
	#define	CONST_BYTE_TCCR0_VALUE		(BIT(CS02) |BIT(CS00) )
	
#endif

				//注意这里不使用Timer0的定时以外的功能!
#define	CODE_START_TIME0	TCCR0 =CONST_BYTE_TCCR0_VALUE			//根据上面的设置进行选择
#define	CODE_STOP_TIME0		TCCR0 &= ~( BIT(CS02) |BIT(CS01) |BIT(CS00) )	//CS02-0 =000, 停止Timer0

//--------------------------------------
//数据类型的定义
//--------------------------------------

//--------------------------------------
//函数的预定义
//--------------------------------------
#pragma interrupt_handler	_irq_int0_server:iv_INT0		//外部INT0中断
#pragma interrupt_handler	_irq_int1_server:iv_INT1		//外部INT1中断
#pragma interrupt_handler	_irq_timer0_over_server:iv_TIMER0_OVF	//timer0中断

void	init_extern_int0_sets(void);
void	init_extern_int1_sets(void);
void	init_timer0_sets(void);

#endif

//End Of File

⌨️ 快捷键说明

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