微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 求大神帮忙分析一下代码,定时器和中断方面的

求大神帮忙分析一下代码,定时器和中断方面的

时间:10-02 整理:3721RD 点击:
程序是用作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;
}

你那里不明白?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top