智能车制作

标题: 关于k60定时中断问题,求大神 [打印本页]

作者: 神探刷王    时间: 2013-4-19 01:11
标题: 关于k60定时中断问题,求大神
本帖最后由 神探刷王 于 2013-4-19 01:30 编辑

求大神指导,在用定时中断输出FTM测得的编码器脉冲,为什么在主函数里,用液晶。能显示pwmtest,但是zhuanshu永远显示的是0;求解
测试发现在pit中断中加入一定延时又能正确显示,求大神指导
中断程序
extern volatile u32 pwmtest;
extern volatile u32 zhuanshu;
void FTM2_IRQHandler()
{
    u8 s = FTM2_STATUS;             //读取捕捉和比较状态  All CHnF bits can be checked using only one read of STATUS.
    u8 CHn;
    FTM2_STATUS = 0x00;             //清中断标志位
    CHn = 0;
    if( s & (1 << CHn) )
    {
        FTM_IRQ_DIS(FTM2, CHn);     //禁止输入捕捉中断
        /*     用户任务       */
        pwmtest++;                             //计数+1
        //通道 CH0、CH1、Ch2、Ch3 有滤波器
        FTM_IRQ_EN(FTM2, CHn); //开启输入捕捉中断

    }



void PIT0_IRQHandler(void)
{ u32 lll;
    DisableInterrupts;            //禁止总中断
  //printf("\n接收到 %d 个脉冲", pwmtest);
   
  //  Ad_red10();
    zhuanshu=pwmtest;
    pwmtest = 0;                //清计数



主函数
volatile u32 pwmtest;         //用来计数
volatile u32 sudu;
volatile u32 Dj_test=760;
u32 zhuanshu;
u32 Dg[6];
u32 Dg_por[6];
void main()
{
    //自行添加代码
  DisableInterrupts;  //禁止总中断
  Ad_init();
   Pwm_init();
   //Gpio_init();                    
     pit_init_ms(PIT0, 5);                     //5ms产生一次中断
    LCD_Init();
     LCD_Fill(0xff);//黑屏
      delayms(1000);
      LCD_Fill(0x00);//亮屏
      delayms(1000);
      EnableInterrupts; //开总中断   
   while(1)
    {
   
     LCD_P8x16Str(0,0 ,div_data(zhuanshu));
      //delayms(1000);      
      //LCD_CLS();

      
      }
    }
}


加入1ms延迟,lcd能正常显示
void PIT0_IRQHandler(void)
{ //u32 lll;
    DisableInterrupts;            //禁止总中断
  //printf("\n接收到 %d 个脉冲", pwmtest);
   
  //  Ad_red10();
    pwm=pwmtest;
    pwmtest = 0;                //清计数

   delayms(1);


    PIT_Flag_Clear(PIT0);       //清中断标志位
    EnableInterrupts;                          //开总中断                         //开总中断
}


作者: q378759521    时间: 2013-4-27 14:16

作者: 神探刷王    时间: 2013-4-28 00:06
q378759521 发表于 2013-4-27 14:16

这位大哥。。笑什么呢。。




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