智能车制作

标题: 1ms中断 [打印本页]

作者: linping9656    时间: 2012-3-17 14:46
标题: 1ms中断
清华的1ms中断里面的AD数据,速度数据是怎么获得啊?求高手讲解一下啊
void TI1_OnInterrupt(void){
    int i;
    g_nSpeedControlPeriod ++;
    SpeedControlOutput();

    g_nDirectionControlPeriod ++;
    DirectionControlOutput();

    if(g_n1MSEventCount >= CONTROL_PERIOD) {
        g_n1MSEventCount = 0;
        GetMotorPulse();    读取两个电极脉冲计数值
    } else if(g_n1MSEventCount == 1) {         
        for(i = 0; i < INPUT_VOLTAGE_AVERAGE; i ++)
            SampleInputVoltage();//这个应该是AD数据处理吧
    } else if(g_n1MSEventCount == 2) {
        GetInputVoltageAverage();
        AngleCalculate();
        AngleControl();   
        MotorOutput();     
    } else if(g_n1MSEventCount == 3) {
        g_nSpeedControlCount ++;
        if(g_nSpeedControlCount >= SPEED_CONTROL_COUNT) {
            SpeedControl();
            g_nSpeedControlCount = 0;
            g_nSpeedControlPeriod = 0;
        }      
    } else if(g_n1MSEventCount == 4) {   
        g_nDirectionControlCount ++;
        DirectionVoltageSigma();
        if(g_nDirectionControlCount >= DIRECTION_CONTROL_COUNT) {
            DirectionControl();
            g_nDirectionControlCount = 0;
            g_nDirectionControlPeriod = 0;
    }
}


作者: ListenHappy    时间: 2012-3-17 15:46
其实我都不知道他g_n1MSEventCount 这个变量是怎么变化!!!!
作者: linping9656    时间: 2012-3-17 18:49
ListenHappy 发表于 2012-3-17 15:46
其实我都不知道他g_n1MSEventCount 这个变量是怎么变化!!!!

嗯,那个变量是用来控制每次进入中断时是执行那一部分命令的





欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2