1. avr 8位定时器/计数器0 --TC0输出模式1 --CTC模式输出PWM (比较匹配发生时清零计数器模式)

该博客介绍了如何使用AVR 8位单片机的定时器/计数器0(TC0)在CTC模式下设置输出PWM,以生成20Hz的方波信号。通过配置分频系数、工作模式、比较寄存器值以及中断设置,实现在PB7脚上输出占空比为50%的PWM,并在PD7脚上产生2秒周期的信号。
摘要由CSDN通过智能技术生成
 

CTC:比较匹配时清零计数器模式。

当计数器TCNT0的数值等于比较寄存器OCR0时计数器TCNT0自动清零。

OCR0定义了计数器的最大(TOP)值,这个模式使得用户可以很容易地控制比较匹配输出的频率。

T/C0的比较输出脚为OC0(PB7),在此模式下可以在OC0上输出PWM控制外部设备。

例如:在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管脚初始化:PB7(OC0)脚设为输出,DDRB|=(1<<PB7);

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

三、T/C0比较中断允许:TIMSK|=(1<<OCIE0);

四、TCCR0配置:分频系数为1024, TCCR0|=(1<<CS02)|(0<<CS01)|(1<<CS00);

CTC模式设置, TCCR0|=(1<<WGM01)|(0<<WGM00);

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值