本帖最后由 mfkyygt 于 2014-3-25 15:53 编辑
用proteus做一个过零控制的测试电路,过零信号输入tiny13的PB1(INT0)口,PB4为输出
中断int0设置为下降沿触发,中断处理就直接取反PB4电平,按道理应该是一频率和过零信号对应的方波吧,为何结果却是这样呢?是否proteus需要设置什么?
中断程序:
#pragma interrupt_handler int0_isr:iv_INT0
void int0_isr(void)
{
//过零触发,f =100Hz
COM(PORTB,PB4);
}
void timer0_init(void)
{
CLI(); //关中断
TCCR0B = 0x00; //stop
OCR0A = 0x95;
OCR0B = 0x95;
TCNT0 = 0x6B; //set count
TCCR0A = 0x00;
TCCR0B = 0x03; //start timer
MCUCR =0x02;
TIMSK0 =0x02;
GIMSK =0x40;
SEI(); //开中断
}
|