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