标题:
TimerInterrupt.h头文件下载-AVR单片机的通用定时/计数器中断控制
[打印本页]
作者:
daming
时间:
2014-12-30 12:44
标题:
TimerInterrupt.h头文件下载-AVR单片机的通用定时/计数器中断控制
在代码下方点复制代码,然后另存到电脑磁盘即可下载.
/*****************************************************************************
单 位:广西民族大学物理与电子工程学院07物本班
文件名称:PORT.H
文件标识:_PORT_H_
摘 要:AVR单片机的通用定时/计数器中断控制头文件
当前版本:V1.0
作 者: 【白 羽】
完成日期:2010年11月16日
*****************************************************************************/
#ifndef _TIMERINTERRUPT_H_
#define _TIMERINTERRUPT_H_
#define OC2 (1 << 7) //比较匹配2
#define OV2 (1 << 6) //定时溢出2
#define ICP1 (1 << 5) //输入捕获1
#define OC1A (1 << 4) //比较匹配1A
#define OC1B (1 << 3) //比较匹配1B
#define OV1 (1 << 2) //定时溢出1
#define OC0 (1 << 1) //比较匹配0
#define OV0 (1 << 0) //定时溢出0
#define ICP3 (1 << 13) //输入捕获3
#define OC3A (1 << 12) //比较匹配3A
#define OC3B (1 << 11) //比较匹配3B
#define OV3 (1 << 10) //定时溢出3
#define OC3C (1 << 9) //比较匹配3C
#define OC1C (1 << 8) //比较匹配1C
#define iv_OC2 iv_TIMER2_COMP //比较匹配2
#define iv_OV2 iv_TIMER2_OVF //定时溢出2
#define iv_ICP1 iv_TIMER1_CAPT //输入捕获1
#define iv_OC1A iv_TIMER1_COMPA //比较匹配1A
#define iv_OC1B iv_TIMER1_COMPB //比较匹配1B
#define iv_OV1 iv_TIMER1_OVF //定时溢出1
#define iv_OC0 iv_TIMER0_COMP //比较匹配0
#define iv_OV0 iv_TIMER0_OVF //定时溢出0
#define iv_ICP3 iv_TIMER3_CAPT //输入捕获3
#define iv_OC3A iv_TIMER3_COMPA //比较匹配3A
#define iv_OC3B iv_TIMER3_COMPB //比较匹配3B
#define iv_OV3 iv_TIMER3_OVF //定时溢出3
#define iv_OC3C iv_TIMER3_COMPC //比较匹配3C
#define iv_OC1C iv_TIMER1_COMPC //比较匹配1C
#ifdef ETIMSK
#define ETIMSK_SET(X) if((X)/256 != 0) ETIMSK |= (X)/256
#define ETIMSK_CLR(X) if((X)/256 != 0) ETIMSK &= ~((X)/256)
#else
#define ETIMSK_SET(X)
#define ETIMSK_CLR(X)
#endif
#ifdef ETIFR
#define ETIFR_SET(X) if((X)/256 != 0) ETIFR |= (X)/256
#else
#define ETIFR_SET(X)
#endif
#define EnableTimerInterrupt(X) \
do{ \
if((X)%256 != 0) TIMSK |= (X)%256 ; \
ETIMSK_SET(X); \
}while(0)
#define UnEnableTimerInterrupt(X) DisableTimerInterrupt(X)
#define DisableTimerInterrupt(X) \
do{ \
if((X)%256 != 0) TIMSK &= ~((X)%256); \
ETIMSK_CLR(X); \
}while(0)
#define ClearTimerInterrupt(X) ClearTimerInterruptFlag(X)
#define ClearTimerInterruptFlag(X) \
do{ \
if((X)%256 != 0) TIFR |= (X)%256; \
ETIFR_SET(X); \
}while(0)
#ifndef SEI
#define SEI() asm("sei")
#endif
#ifndef CLI
#define CLI() asm("cli")
#endif
#endif
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1