历史上的今天
返回首页

历史上的今天

今天是:2025年01月16日(星期四)

正在发生

2020年01月16日 | AVR单片机比较匹配清零计数器模式的操作步骤及过程

2020-01-16 来源:elecfans

当计数器TCNT0的数值等于比较寄存器OCR0时计数器TCNT0自动清零。OCR0定义了计数器的最大(TOP)值,这个模式使得用户可以很容易地控制比较匹配输出的频率。T/C0的比较输出脚为OC0(PB3),PB口的第三脚,在此模式下可以在OC0上输出PWM控制外部设备。

AVR单片机比较匹配清零计数器模式的操作步骤及过程

例如:在OC0脚上输出20HZ的方波信号,方波的周期时间为T=1/20HZ=0.05秒=50ms,半个周期为25ms,系统采用8MHZ晶振,1024分频,时钟计数频率为8000000/1024=7812.5HZ,每个时钟脉冲时间为1/7812.5=0.128ms, 定时25ms的计数值为25ms/0.128ms=195,将195赋值为T/C0的比较寄存器OCR0,启动定时器后,TCNT0从0开始计数,当计数到195时,产生比较中断,在OC0脚上输出20HZ的占空比为50%的方波信号。


操作过程如下:

一、I/O管脚初始化:PB3(OC0)脚设为输出,DDRB|=(1《

二、使能全局中断:SREG=0X80;

三、T/C0比较中断允许:TIMSK|=(1《

四、TCCR0配置:分频系数为1024, TCCR0|=(1《

CTC模式设置, TCCR0|=(1《

比较匹配时OC0取反 TCCR0|=(1《

五、计数器付初值: TCNT0=0;

OCR0=195; //付初值后定时器开始工作

//函数功能:在PB3上输出20HZ的方波,并在PD7上产生周期2秒的周期信号。(代码来自轻松玩转avr单片机c语言cd)

#include

char Counter = 0; // 计数变量清零

void port_init()

{

DDRB|=(1《PORTB&=(0《DDRD|=(1《PORTD&=(0《}

void TImer0_init()

{

SREG = 0x80; //使能全局中断

TIMSK= (1《《 OCIE0); //T/C0比较匹配中断允许

TCCR0=(1《// T/C0工作于CTC模式,1024分频,比较匹配时,触发OC0取反

TCNT0 = 0; //定时初值设置,

OCR0 = 195; //比较匹配寄存器初值

}

void main()

{

port_init();

TImer0_init();

while(1);

}

#pragma interrupt_handler TImer0_COMP:20

void timer0_COMP(void)

{

TCNT0 = 0; //定时初值设置,

OCR0 = 195; //比较匹配寄存器初值

if(++Counter 》= 40) //定时时间到1S吗?定时中断溢出40次为1S

{

PORTD^=(1《Counter = 0; //1S计时变量清零

}

}


推荐阅读

史海拾趣

启臣微(Chip)公司的发展小趣事

作为一家高新技术企业,启臣微深知绿色生产的重要性。公司采用先进的生产工艺和设备,实现了生产过程中的节能减排。同时,公司还积极参与环保公益活动,倡导绿色生活方式,为社会的可持续发展贡献了自己的力量。

Hama公司的发展小趣事

在获得多轮融资后,H&D Wireless加快了全球化战略的步伐。公司计划利用融资资金进行全球业务扩张,并发布物联网云服务平台,以支持更多应用程序实现非现金支付和位置追踪服务。此外,H&D Wireless还透露了上市计划,考虑在斯德哥尔摩纳斯达克北欧交易所(Nasdaq First North)寻求上市。这一计划将为公司带来更多的资金支持和市场关注,进一步推动其全球化发展。

Devar Inc公司的发展小趣事

随着环保意识的提高,Devar Inc公司也积极投身环保科技领域。公司研发了一系列环保型电子产品和解决方案,如可降解材料制成的电子产品外壳、节能型电源管理系统等。同时,Devar还积极参与电子废弃物的回收和处理工作,推动循环经济的发展。这些努力不仅有助于减少环境污染和资源浪费,也提升了公司的社会责任感和品牌形象。

Bogen Communications Inc公司的发展小趣事

在电子行业的激烈竞争中,Bogen Communications Inc公司凭借一项革命性的技术创新,迅速崭露头角。该公司研发出一种新型的音频处理芯片,极大地提升了通信设备的音质和性能。这一创新不仅赢得了市场的广泛认可,还为公司带来了大量的订单和合作伙伴。随着技术的不断完善和市场的扩大,Bogen Communications Inc逐渐成为了音频通信领域的领导者。

EPCOS (TDK)公司的发展小趣事

EPCOS的前身是西门子松下有限公司(Siemens Matsushita Components),于1989年在德国慕尼黑成立。这家合资公司的诞生标志着西门子和松下两大电子巨头在电子元器件领域的强强联合。通过整合双方的技术和市场优势,EPCOS迅速崛起为全球电子元器件市场的重要参与者。

Amperite Co公司的发展小趣事

在国际化布局方面,TDK-EPC公司始终保持着积极开放的态度。公司通过设立海外研发中心、生产基地和销售网络等方式,不断拓展国际市场。同时,公司还积极参与国际竞争和合作,与全球众多知名企业建立了长期稳定的合作关系。这些举措不仅提升了TDK-EPC公司的品牌影响力和市场竞争力,也为公司的长期发展提供了有力保障。

问答坊 | AI 解惑

Xilinx通过ISO/TS 16949汽车行业标准认证

赛灵思公司(Xilinx)今天宣布获得汽车行业质量标准ISO/TS 16949认证。ISO/TS 16949标准使赛灵思公司能够为整个汽车供应链提供质量和可靠性最高的电子元器件。赛灵思公司在此之前已经满足了其它世界级质量标准的严格要求,包括ISO 9 ...…

查看全部问答>

单片机C51典型应用设计代码

所有代码均在Keil C51 7.0以上版本编译通过。只需要能够运行Windows 98 以上版本的操作系统、并能够安装Keil C51 7.0以上版本的软件即可。…

查看全部问答>

搞通信的:硬件和软件哪个发展前景更大?

请大家谈谈自己相关领域的状况。…

查看全部问答>

请教!请教!

请问一下,三星笔记本管理员密码忘记了,开不了机怎么办?…

查看全部问答>

那里能找到高通qsd8x50片子的资料

我们用到高通这样一个片子,可是没有芯片资料,据高通说还没有发布,不知各位大爷有没有找得到的。 给个网址、 …

查看全部问答>

关于 飞思卡尔(freescale)i.MX51

1、阅读了一下i.MX51  ARM Cortex A8的datasheet,对于IOMUX还是不清楚, 2、还有一些缩写如:PAD、ALTn(n=0, 1, 2...)等等很多,配置一个引脚做很多工作。 3、感觉freescale的比较难理解,以前做三星的一看寄存器就知道是干什么的。 ...…

查看全部问答>

定制系统时加入了微软拼音中文输入法

定制系统时加入了微软拼音中文输入法,结果运行时,只出声母,不出韵母,打不出中文来,请问有人遇到过没,怎么解决? 1、设置了环境变量SET LOCALE=0804; 2.在platform settings中选择了中文(中国),英文(美国),默认语言设为中文; 3.在P ...…

查看全部问答>

关于驱动的调试release和debug

不知道大家对于调试的看法怎么样。一般你在调试的时候是release还是debug的。我每次都基本上时release的。因为是经理教的。只有在调试一些流层性,我们不知道架构的东西我才用debug。反正基本上不用。。用过几次也很懊恼。。点个屏漫天的打印信息。 ...…

查看全部问答>

求助:如何测量白石灰料位?

求助:料仓里的白石灰粉,当放料后,形成如图(四周高,中间低的料位情况)。 这时候测量仪表无法准确测了料位高度。 求助解决方法:如何能让料仓里的料位处于相对水平状态;或者采用什么样的仪表才能够做到精确测量?…

查看全部问答>