|
簡單 框架式編程方式,在定時器中斷里面搞一個變量自動增加 作為PWM的時間基礎(chǔ) #include "all.h"
u16 xdata Timer1_Plus;
u16 xdata Acoustic_Distance=0;
void Timer1_INT1_Init()
{
AUXR|=0x40;
TMOD&=0X0F;
TMOD|=0XA0;
TR1=0;
TH1=0X53;
TL1=0X53;
ET1=1;
}
void Acoustic_Init()
{
Timer1_INT1_Init();
Pulse=0;
}
void Timer1_Routine() interrupt 3
{
Timer1_Plus++;
if(Timer1_Plus>500)
{
TR1=0;
}
}
void Acoustic_Amount_Ser()
{
static xdata u16 count=0;
count++;
switch(count)
{
case 1:Pulse=1;TR1=1;Timer1_Plus=0;break;
case 3:Pulse=0;break;
case 1000:Acoustic_Distance=Timer1_Plus;count=0;break;
}
} |
|