AVR定时器比较匹配中断问题,急求!

Atmega1280的timer1有A、B、C三个通道,三个通道可以独立触发比较匹配中断吗?我觉得行怎么实际执行不正常?我同时还使用了timer3、timer5做PWM输... Atmega1280的timer1有A、B、C三个通道,三个通道可以独立触发比较匹配中断吗?我觉得行怎么实际执行不正常?我同时还使用了timer3、timer5做PWM输出,代码如下:

void servo_init(){
TCCR3A |= 0b10101000; //定时器3的A B C通道是相位修正及相频修正PWM模式 升序记数时比较匹配将清零
TCCR3B |= 0b00010011; //N=64分频
TCCR3C=0x00;
ICR3=1728; //f=fclk/(2*N*TOP)=50Hz(20ms),TOP=ICR1,fclk=11.0592M.
TCNT3=0x0000;
DDRE|=(1<<PE3)|(1<<PE4)|(1<<PE5);

TCCR4A |= 0b10101000; //定时器4的A B C通道是相位修正及相频修正PWM模式 升序记数时比较匹配将清零
TCCR4B |= 0b00010011; //N=64分频
TCCR4C=0x00;
ICR4=1728; //f=fclk/(2*N*TOP)=50Hz(20ms),TOP=ICR1,fclk=11.0592M.
TCNT4=0x0000;
DDRH|=(1<<PH3)|(1<<PH4)|(1<<PH5);

TCCR5A |= 0b10101000; //定时器4的A B C通道是相位修正及相频修正PWM模式 升序记数时比较匹配将清零
TCCR5B |= 0b00010011; //N=64分频
TCCR5C=0x00;
ICR5=1728; //f=fclk/(2*N*TOP)=50Hz(20ms),TOP=ICR1,fclk=11.0592M.
TCNT5=0x0000;
DDRL|=(1<<PL3)|(1<<PL4)|(1<<PL5);
}

void timer_init(void){
TCCR1A|=0b00000000;
TCCR1B|=(1<<WGM12)|(1<<CS12)|(1<<CS10);//CTC 1024
OCR1A=(F_CPU/1024)/1; //1000ms发生一次中断
OCR1B=(F_CPU/1024)/10;//100ms发生一次中断
OCR1C=(F_CPU/1024)/100;//10ms发生一次中断
TCNT1=0;//设置初值为0
TIMSK1|=(1<<OCIE1C)|(1<<OCIE1B)|(1<<OCIE1A);//使能比较匹配中断
}

ISR(TIMER1_COMPA_vect){
……;
}
ISR(TIMER1_COMPB_vect){
……;
}
ISR(TIMER1_COMPC_vect){
……;
}

int main(void){
timer_init();
servo_init();

sei();
while(1);
}
展开
 我来答
伽罗林克
2014-05-17 · TA获得超过2633个赞
知道小有建树答主
回答量:931
采纳率:0%
帮助的人:1188万
展开全部
void timer_init(void){
TCCR1A|=0b00000000;
TCCR1B|=(1<<WGM12)|(1<<CS12)|(1<<CS10);//CTC 1024
OCR1A=(F_CPU/1024)/1; //1000ms发生一次中断
OCR1B=(F_CPU/1024)/10;//100ms发生一次中断
OCR1C=(F_CPU/1024)/100;//10ms发生一次中断
TCNT1=0;//设置初值为0
TIMSK1|=(1<<OCIE1C)|(1<<OCIE1B)|(1<<OCIE1A);//使能比较匹配中断
}

上面这段,CTC模式,最短中断时间是OCR1C,10ms,于是TCNT1中断并复位,永远不会触发OCR1B,和OCR1A,因为只有一个TCNT1。可以只启动OCR1C,然后在中断里面计数来触发10倍周期中断和100倍周期中断,不必开几个。
追问
谢谢您的回答,我还想了解如果我想同时三个通道的中断,有办法实现吗?
追答
一个定时器还不能同时触发一个以上比较中断,只可以做相同周期,不同占空比的PWM.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式