天天

【原创】调光程序!

0
阅读(3359)

使用AVR芯片,用到3个中断,分别是外部中断,定时器0,1中断,代码如下

//-----------------------------外部中断

ISR(SIG_PIN_CHANGE0)

{

MOC302X_L();

OPEN_INT_T1();//开定时器1

TCNT1H=0xfe;//延时时间

TCNT1L=0xdd;

}

 

//-----------------------------定时器0中断--溢出中断

ISR(SIG_OVERFLOW0)

{

TCNT0=0xfe;

CLOSE_INT_T0();

MOC302X_L();

}

//-----------------------------定时器1中断--溢出中断

ISR(SIG_OVERFLOW1)

{

TCNT1H=0xfe;

TCNT1L=0xdd;

cnt++

if(cnt >=DELAY)//DELAY可修改,改变其值,就可以改变灯的明暗

{

CLOSE_INT_T1();

OPEN_INT_T0();

TCNT0=0xDA;

MOC302X_H();

cnt=0;

}

}

 

主要是对其定时器中断的开关,其延时时间的控制,其他的没什么难点。

PS:之前一个项目用到国产的芯片,读取的寄存器值不稳定,感觉不是在整芯片,而是芯片整我!悲叹呀!