程序是用作pid控制直流电机上的,现在就这一点不明白了,求大神指导
void
timer_init() //定时器初始化函数
{
EA = 1;
ET0 = 1;
ET1 = 1;
ET2 = 1;
TMOD = 0x15; //定时器0 计数模式 定时器1模式1
T2MOD = 0x01;
TH0 = TL0 = 255;
TH2 = 0x3C;
TL2 = 0xB0; //50MS
}
void timer1() interrupt 3 //
{
if(t1_flag == 0)
{
t1_flag = 1;
PWM = 1;
TH1 = (tuint - tpwm + 1)/256;
TL1 = (tuint - tpwm + 1)%256;
}
else
{
t1_flag = 0;
PWM = 0;
TH1 = (tuint - 10000 + tpwm + 1)/256;
TL1 = (tuint - 10000 + tpwm + 1)%256;
}
}
void timer0() interrupt 1 //
{
TH0 = TL0 = 255;
t0_flag++;
}
void timer2() interrupt 5 //
{
TF2 = 0;
TH2 = 0x3C;
TL2 = 0xB0; //50MS
t2_flag++;
if(t2_flag == 2)
{
TR0 = 0;
TR2 = 0;
t2_flag = 0;
t2_over = 1; //表示100ms时间到
}
}
void GetPulse()
{
t0_flag = 0;
t2_flag = 0;
TH0 = TL0 = 255;
TH2 = 0x3C;
TL2 = 0xB0; //50MS
TR0 = 1;
TR2 = 1;
}
一周热门 更多>