历史上的今天
今天是:2024年11月26日(星期二)
2019年11月26日 | TimerConvert.h头文件下载-AVR定时器参数转换通用头文件
2019-11-26 来源:51hei
/*****************************************************************************
文件名称:TimerConvert.h
文件标识:_TIMERCONVERT_H_
摘 要:AVR定时器参数转换通用头文件
当前版本:V1.0
*****************************************************************************/
#ifndef _TIMERCONVERT_H_
#define _TIMERCONVERT_H_
#define WGM0(WGM) (((WGM & 0X01) << 6) | ((WGM & 0X02) << 3))
#define WGM1L(WGM) (WGM & 0X03)
#define WGM1H(WGM) (((WGM) & 0X0C) << 1)
#define WGM2(WGM) (((WGM & 0X01) << 6) | ((WGM & 0X02) << 3))
#define WGM3L(WGM) (WGM & 0X03)
#define WGM3H(WGM) (((WGM) & 0X0C) << 1)
#define COM0(COM) ((COM) << 4)
#define COM1A(COM) ((COM) << 6)
#define COM1B(COM) ((COM) << 4)
#define COM1C(COM) ((COM) << 2)
#define COM2(COM) ((COM) << 4)
#define COM3A(COM) ((COM) << 6)
#define COM3B(COM) ((COM) << 4)
#define COM3C(COM) ((COM) << 2)
/*****************************************************************************
PRESCALE --> CSX[2:0]
说明:CS2(PRESCALE)使用了条件编译,这个条件编译是基于如下假设:对于具有定时/计
数器3的AVR单片机,定时/计数器2不存在外部输入引脚; 对于没有定时/计数器3的AVR单
单片机,定时/计数器2必存在外部输入引脚。这是一个尚未证明的假设。 ^_^
另外,如果输入的分频系数不对,则强制CSX[2:0]=0,定时/计数器拒绝运行。
*****************************************************************************/
#define CS0(PRESCALE)
(
(PRESCALE) == 0 ? 0 :
(PRESCALE) == 1 ? 1 :
(PRESCALE) == 8 ? 2 :
(PRESCALE) == 64 ? 3 :
(PRESCALE) == 256 ? 4 :
(PRESCALE) == 1024? 5 : 0
)
#define CS1(PRESCALE)
(
(PRESCALE) == 0 ? 0 :
(PRESCALE) == 1 ? 1 :
(PRESCALE) == 8 ? 2 :
(PRESCALE) == 64 ? 3 :
(PRESCALE) == 256 ? 4 :
(PRESCALE) == 1024? 5 : 0
)
#ifndef TCNT3
#define CS2(PRESCALE)
(
(PRESCALE) == 0 ? 0 :
(PRESCALE) == 1 ? 1 :
(PRESCALE) == 8 ? 2 :
(PRESCALE) == 64 ? 3 :
(PRESCALE) == 256 ? 4 :
(PRESCALE) == 1024? 5 : 0
)
#else
#define CS2(PRESCALE)
(
(PRESCALE) == 0 ? 0 :
(PRESCALE) == 1 ? 1 :
(PRESCALE) == 8 ? 2 :
(PRESCALE) == 32 ? 3 :
(PRESCALE) == 64 ? 4 :
(PRESCALE) == 128 ? 5 :
(PRESCALE) == 256 ? 6 :
(PRESCALE) == 1024? 7 : 0
)
#endif
#define CS3(PRESCALE)
(
(PRESCALE) == 0 ? 0 :
(PRESCALE) == 1 ? 1 :
(PRESCALE) == 8 ? 2 :
(PRESCALE) == 64 ? 3 :
(PRESCALE) == 256 ? 4 :
(PRESCALE) == 1024? 5 : 0
)
/*****************************************************************************
STEPS --> OCRX
说明:CS2(PRESCALE)使用了条件编译,这个条件编译是基于如下假设:对于具有定时/计
数器3的AVR单片机,定时/计数器2不存在外部输入引脚; 对于没有定时/计数器3的AVR单
单片机,定时/计数器2必存在外部输入引脚。这是一个尚未证明的假设。 ^_^
*****************************************************************************/
#define _OCR0(STEPS)
(
(STEPS) <= 256 ? ((STEPS) - 1) :
(STEPS) <= 256*8 ? ((STEPS)/8 - 1) :
(STEPS) <= 256*64 ? ((STEPS)/64 - 1) :
(STEPS) <= 256*256 ? ((STEPS)/256 - 1) :
(STEPS) <= 256*1024 ? ((STEPS)/1024 - 1) : 255
)
#define _OCR1(STEPS)
史海拾趣
|
最近两个月模拟工作面对的一些比较深思的面试题 希望能给还没有毕业的童鞋一些帮助 1, 相近的尺寸下,为什么BJT的工作工作频率比CMOS的高,噪声低。从器件的角度分析 2,ESD电路起作用的时候,放电回路的电路图和结构以及版图实现原理 3,verti ...… 查看全部问答> |
|
一篇不错的技术应用文章,与大家分享一下 作者:N. Smithfield , R.I., USA 来源:C. R. Swartz Picor公司 简介 先进的电信与无线架构、网络与通信技术及高速服务平台等终端系统需要持續不斷的改善良更新產品, 隨着市場 ...… 查看全部问答> |
|
夸一夸新内核. 眼看ZLG和ST推Cortex-M3内核好一阵子了,虽然看上去美,但已经比较深入地搞过51,PIC,430和ARM7,手里又有TI的DSP和coldfire等新玩意尚待深入研究,实在没精力也没必要去学习新东西了。 偏巧聚会抽到了个ST的mini套件 ...… 查看全部问答> |




