|
楼主 |
发表于 2009-12-25 11:21:49
|
显示全部楼层
谢谢大家关注,我用的是INT3,除了这个外部中断,我还用到了TIMER0.TIMER2,以及一个PWM-OCT1B(但是没有起用中断),这里边就这个INT3最高了.我要做的就是检测过零点按照用户设定的相位值(0-360度)切入到220V的正弦波.我用示波器跟踪,发现过零点切入每次角度都不一样.我进入到中断就做一件事,拉高PC7.
ICCAVR源程序:
************************************************************
开中断:
//打开INT3 下降沿触发
EIMSK = 0x00;
EICRA |= 0x80; //extended ext ints 打开INT3下降沿
EIMSK |= 0x08; //使能INT3中断
********************************************
中断处理程序:
#pragma interrupt_handler int3_isr:5
void int3_isr(void)
{
//external interupt on INT3
PORTC|=0X80; ///00000000实验
MCUCR=0; //以下两条是别的网友的建议,也不好使,
EIFR|=0X08;
}
***********************************************
请各位大侠帮忙指点,在线等候!!!! |
|