打印
[DSP编程]

28335 定时器0程序问题

[复制链接]
4136|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
595332542|  楼主 | 2013-8-14 16:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
老师好,原来延时去抖动按键不太合适,我想在改为定时器按键功能,现在先启用定时器,可是定时器0为什么没有反应,观察CpuTimer0.InterruptCount的数值没有变化,麻烦帮忙看下哈。
main(void)
{  

   InitSysCtrl();
   InitPieCtrl();
   InitPieVectTable();//中断向量表的初始化函数
   DINT;
   IER = 0x0000;
   IFR = 0x0000;
   InitXintf();
   InitECanGpio();
   canchushihua();
   configtestled();
   delay(1);
    LcdInit();
   delay(1);
           InitI2CGpio();
        InitI2C();
    epromRead();
    InitCpuTimers();   // For this example, only initialize the Cpu Timers
//        fasong();
//    fasong();
        delay(100);
        ConfigCpuTimer(&CpuTimer0, 150, 100000);
        StartCpuTimer0();

        EALLOW;  // This is needed to write to EALLOW protected registers
    PieVectTable.TINT0 = &ISRTimer0;
   //PieVectTable.XINT13 = &cpu_timer1_isr;
   //PieVectTable.TINT2 = &cpu_timer2_isr;
    EDIS;    // This is needed to disable write to EALLOW protected registers

    IER |= M_INT1;
   //IER |= M_INT13;
   //IER |= M_INT14;

   // Enable TINT0 in the PIE: Group 1 interrupt 7
    PieCtrlRegs.PIEIER1.bit.INTx7 = 1;

   EALLOW;
   SysCtrlRegs.HISPCP.all = ADC_MODCLK;        // HSPCLK = SYSCLKOUT/ADC_MODCLK
   EDIS;

   EALLOW;
   GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0;    // GPIO pin
   GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1;     // Output pin
   EDIS;
   EALLOW;  // This is needed to write to EALLOW protected registers
   PieVectTable.ECAN0INTB = &ECAN0INT_ISR;
   EDIS;
    IER |= M_INT9;
   //PieCtrlRegs.PIEIER1.bit.INTx7 = 1;
    PieCtrlRegs.PIEIER9.bit.INTx7 = 1;  //使能Ecan0INT
    EINT;   // Enable Global interrupt INTM
    ERTM;       
       
       

    RW=0;  //245方向  输出        
    delay(1);
    INTFORFFT();
    delay(1);
    START=1;
//  CLEAR=0;
           L=1;
    delay(10);
    Lcdrest();
   
    delay(1);
        LcdInit();
    delay(5);
    Lcdrest();
    LcdInit();
    xianshi0();
    DELAY_US(5);
   
    DELAY_US(5);

// can_xmit(300) ;
// GpioDataRegs.GPCDAT.bit.GPIO79 =0;
    //shuzuchushihua();
                  
        while(1)
         {
  
    handldata(); //参数计算
    RUN_DETECT();
    keyscan();   //按键扫描
        delay(1);
    handlekey(); // 按键处理
        }
}
interrupt void ISRTimer0(void)
{
    CpuTimer0.InterruptCount++;

   // Acknowledge this interrupt to receive more interrupts from group 1
    PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
    CpuTimer0Regs.TCR.bit.TIF=1;//
    CpuTimer0Regs.TCR.bit.TRB=1;

}

相关帖子

沙发
595332542|  楼主 | 2013-8-14 16:41 | 只看该作者
不要沉下去啊

使用特权

评论回复
板凳
zhangmangui| | 2013-8-15 12:19 | 只看该作者
EX01_CpuTimer0.rar (258.25 KB)
EX02_CpuTimer2.rar (252.72 KB)

看看我给你的这两个分享   先确定定时器工作起来

使用特权

评论回复
地板
595332542|  楼主 | 2013-8-16 15:51 | 只看该作者
zhangmangui 发表于 2013-8-15 12:19
看看我给你的这两个分享   先确定定时器工作起来

嗯,我昨天看过了,和例程配置一样的,我的配置应该没有问题,自己也写了简单的定时程序,在这个程序我觉得应该是前面I2C中断的影响,使后面定时器无法启动,不知道我的想法合适不,具体原因还没有找到,先谢谢您啦。

使用特权

评论回复
5
zhangmangui| | 2013-8-16 15:59 | 只看该作者
595332542 发表于 2013-8-16 15:51
嗯,我昨天看过了,和例程配置一样的,我的配置应该没有问题,自己也写了简单的定时程序,在这个程序我觉 ...

好的  仔细查  解决了给大家分享

使用特权

评论回复
6
1831249703| | 2014-12-11 17:46 | 只看该作者
您好,跟你遇到同样的问题,不知道你解决没有?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

77

帖子

3

粉丝