智能车制作

标题: 中断该工作了 [打印本页]

作者: startstart    时间: 2014-7-1 10:46
标题: 中断该工作了
中断不工作,求指导
void INT_Init(void)//定时中断初始化函数 50MS定时中断设置
{        PITCFLMT_PITE=0; //定时中断模块关


      PITCE=0x07;//定时器通道0,1,2使能
      PITMTLD0=128-1;// 64m赫兹 128分频 每个周期2us                                               
      PITLD0=1000-1;//  2us*2000=2ms
      PITLD1=500-1;  // 2us* 500=1 ms
      PITLD2=12500-1;   // 25 ms        打开这句话编码器工作,ccd不工作,屏蔽掉ccd工作,编码器不正常工作
      PITINTE=0x07;//定时器中断通道0中断使能
      PITCFLMT_PITE=1;//定时器通道使能
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
/*************************************************************************
//函数名: PIT0
//输入:   NONE                                 
//输出:   NONE
//改变全局变量:AD_Value SenA,SenB System_Feed_Speed
//作用: 4MS内部中断,完成AD扫描,电机策略,舵机策略等等主要的赛车控制
****************************************************************************/
void interrupt 68 PIT1(void)   // 1ms
{   
      static unsigned char TimerCnt20ms = 0;
      unsigned char integration_piont;

      PITTF_PTF1=1;//清中断标志位
      mm++;
      TimerCnt20ms++;

           /* 根据曝光时间计算20ms周期内的曝光点 */
            integration_piont = 20 - IntegrationTime;
             if(integration_piont >= 2) {      /* 曝光点小于2(曝光时间大于18ms)则不进行再曝光 */
                   if(integration_piont == TimerCnt20ms)
                     StartIntegration();           /* 曝光开始 */
                           }

             if(TimerCnt20ms >= 10) {
                  TimerCnt20ms = 0;
                  TimerFlag20ms = 1;   
                     }
             if(TimerFlag20ms == 1) {
                  TimerFlag20ms = 0;   
                  Integration(Pixel);   //获得像素值
                  }

  if(mm==1)                     //中断计数为1 时

    {   mm=0;
       if(t1==0)
        {
           t2++;
           CalculateIntegrationTime();  //开始曝光    //跳入自适应曝光            
           if(t2==800)
           {
              t1=2;
              t2=0;

           }
        }
    }
}
void interrupt 66 PIT0(void)   // 2ms
{
   PITTF_PTF0=1;//清中断标志位
nn++;        

    Servo_PID();          //舵机PID     
    }   }

   if(mnn=31{  
   System_Feed_Speed=PACNT;   //获得速度             //清中断标志位
   // PITTF_PTF0=1;
    PACNT=0X0000;              //而后清0寄存器

                }

    else if(nn==22{
    Moto_PID();          //调节电机速度   这个函数在MOTER?
     //System_Feed_Speed=PACNT;   //获得速度             //清中断标志位
   // PITTF_PTF0=1;
    //PACNT=0X0000;              //而后清0寄存器
   }
   else if(nn==53{

        nn=0;
        get_black_wire11();
       }
}
  void interrupt 67 PIT2(void)      //25ms
{
   //static int i;
   PITTF_PTF2=1;//清中断标志位
}





作者: startstart    时间: 2014-7-1 10:48
被这东西搞的头都大了,请各位大神指导,在线等,在此谢过了。




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