历史上的今天
返回首页

历史上的今天

今天是: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)                                        

推荐阅读

史海拾趣

铨力(ALLPOWER)公司的发展小趣事

随着新能源汽车市场的快速发展,铨力公司看到了新的发展机遇。于是,公司开始布局新能源汽车领域,研发和生产新能源汽车所需的电源和充电设备。通过不断创新和拓展市场,铨力在新能源汽车领域也取得了显著的成绩,为公司的发展注入了新的动力。

这五个故事展示了铨力(ALLPOWER)公司在电子行业中的发展历程和取得的成就。从创立初期的太阳能电源产品研发,到技术突破和产品升级,再到国际市场的拓展和产业链整合,以及新能源汽车领域的布局,铨力始终保持着创新的精神和进取的态度,不断推动着公司的发展。

EG & G Inc公司的发展小趣事

为了进一步扩大市场份额,EG & G Inc公司积极开展市场拓展和国际合作。公司在中国、欧洲等多个国家和地区设立了分支机构,与当地企业建立了紧密的合作关系。同时,公司还积极参与国际展览和交流活动,展示了其先进的技术和产品。这些努力使得EG & G Inc公司在国际市场上获得了更多的机会和认可。

Highland Electronics Co Ltd公司的发展小趣事

High Tech Chips Inc成立之初,便专注于研发高性能的AI芯片。在公司创始人李博士的带领下,团队突破了传统芯片设计的瓶颈,开发出了一款具有超低功耗和高效能比的AI加速器芯片。这款芯片迅速获得了市场的认可,被广泛应用于智能手机、智能家居和自动驾驶等领域。随着技术的不断迭代和产品的持续优化,High Tech Chips Inc逐渐在AI芯片市场占据了一席之地,并成为了行业内的技术领先者。

First Sensor公司的发展小趣事

面对全球半导体市场的周期性波动和贸易环境的不确定性,High Tech Chips Inc展现出了强大的应变能力和灵活性。在市场需求下滑时,公司迅速调整产品结构,加大在物联网、5G通信等新兴领域的研发投入。同时,通过优化供应链管理、提高生产效率等方式降低成本,保持了良好的盈利能力。这种灵活应对市场挑战的策略使得公司在行业低谷期依然能够稳健发展。

Daniels Manufacturing公司的发展小趣事

进入21世纪后,随着信息技术的快速发展,数字化转型成为制造业的重要趋势。DMC紧跟时代步伐,积极推进数字化转型和智能制造。通过引入先进的生产管理系统、自动化生产线和智能检测设备,DMC实现了生产过程的数字化、网络化和智能化。这不仅提高了生产效率和产品质量,还降低了生产成本和能源消耗。此外,DMC还利用大数据和人工智能技术,对市场需求进行精准预测和分析,为产品研发和市场营销提供有力支持。

Bestar Electric公司的发展小趣事

随着电子行业的快速发展和市场竞争的加剧,Bestar Electric面临着诸多挑战。为了应对这些挑战,公司不断调整战略方向,加大研发投入,提升产品技术含量和附加值。同时,公司还注重人才培养和团队建设,吸引了一批优秀的研发、销售和管理人才,为公司的发展提供了有力保障。

问答坊 | AI 解惑

电赛A题讨论 资料分享

本帖最后由 paulhyde 于 2014-9-15 03:12 编辑 电赛A题讨论 资料分享 顺便求个QQ群    …

查看全部问答>

希望大家多提些问题

我做了这个版块的版主,就希望能够做好。 现在基本上都是我想起什么,再说几句。希望大家多提些工作上的问题,不一定是自己的,也可以是看到别人的,或者是有疑惑的,拿出来做为案例一起分析讨论。这样更有的放矢,大家的收获更大些。…

查看全部问答>

最近两个月模拟工作面对的一些比较深思的面试题

最近两个月模拟工作面对的一些比较深思的面试题 希望能给还没有毕业的童鞋一些帮助 1, 相近的尺寸下,为什么BJT的工作工作频率比CMOS的高,噪声低。从器件的角度分析 2,ESD电路起作用的时候,放电回路的电路图和结构以及版图实现原理 3,verti ...…

查看全部问答>

结合DPA和IBA优势的隔离DC-DC转换器

一篇不错的技术应用文章,与大家分享一下 作者:N. Smithfield , R.I., USA   来源:C. R. Swartz Picor公司 简介      先进的电信与无线架构、网络与通信技术及高速服务平台等终端系统需要持續不斷的改善良更新產品, 隨着市場 ...…

查看全部问答>

网上出现另类智林STM32开发板的抄板

真正智林板,做工精良出口日,韩,新,台,美,印。。。 以下是最近出现抄板,好像没抄好^_^ …

查看全部问答>

弱弱的问:想做EVC开发需要在xp下装哪些开发环境啊

我想用evc做开发,要装些什么开发环境啊,我刚刚接触,什么都不知道,希望指点指点,谢谢拉。…

查看全部问答>

Cortex-M3 ARM太好使了~

  夸一夸新内核.  眼看ZLG和ST推Cortex-M3内核好一阵子了,虽然看上去美,但已经比较深入地搞过51,PIC,430和ARM7,手里又有TI的DSP和coldfire等新玩意尚待深入研究,实在没精力也没必要去学习新东西了。  偏巧聚会抽到了个ST的mini套件 ...…

查看全部问答>

关于运算放大电路中噪声的计算(TI)

[ 本帖最后由 snakebyk 于 2011-8-20 20:25 编辑 ]…

查看全部问答>

软串口发送错误

我编写了一个PIC18F4580的模拟串口发送程序,用的是RC1脚,用三倍率采样,trm0高优先级定时中断,定时器初值是正确的,可是第一个数字总是重复发送,后面的数字发送正常,不知是哪里的毛病?…

查看全部问答>