AVR技术william hill官网
直播中

zhangtaotao71

12年用户 393经验值
擅长:嵌入式技术
私信 关注
[AVR问答]

ATMAGE16 Proteus 8 快速PWM模式

相关寄存器介绍:TCCR0:定时器0的控制寄存器。第3,6位用来选择工作模式,第4,5位来配置端口是否输出PWM,第01,2位用来配置分频系数。
tiMSK:中断屏蔽寄存器(对于定时器0:0位溢出中断,1位比较匹配输出中断)。
TIFR:中断标志位
OCR0:比较匹配寄存器。当计数器TCNT0OCR0相等时则产生匹配使能中断,则会产生中断。
说明:快速PWM模式,是可以改变占空比的。而CTC模式只能输出50%占空比的PWM
TCNT0OCR0相等时,比较匹配OC0则取反清0或置1.TCNT0的值继续递增与0xff相等时,又会在OC0脚产生取反清0或置1.可以通过改变OCR0的值来改变输出占空比。
#include
#include
typedef unsigned int uint;
typedef unsigned char uchar;
void PWM_init(void)
{
    TCCR0|=(1<<6);
TCCR0|=(1<<3);//设置快速PWM模式
TCCR0&=~(1<<4);
TCCR0|=(1<<5);//比较匹配时OC0清0,TOP时置位
TCCR0&=~(1<<0);
TCCR0&=~(1<<1);
TCCR0|=(1<<2);//设置预分频256
DDRB=0xff;
PORTB=0xff;
OCR0=0x10;//设置比较匹配值
TIMSK|=(1<<1);//允许比较匹配中断
SREG|=(1<<7);//使能全局中断
}
void main(void)
{
    PWM_init();
}
#pragma interrupt_handler timer_isr:20
void timer_isr(void)
{
    ;
}
  • 1.PNG
  • 12.PNG

回帖(1)

hua2002

2013-10-31 09:20:49
{:20:}{:20:}{:20:}
举报

更多回帖

发帖
×
20
完善资料,
赚取积分