[DSP编程] 28335 定时器0程序问题

[复制链接]
 楼主| 595332542 发表于 2013-8-14 16:28 | 显示全部楼层 |阅读模式
老师好,原来延时去抖动按键不太合适,我想在改为定时器按键功能,现在先启用定时器,可是定时器0为什么没有反应,观察CpuTimer0.InterruptCount的数值没有变化,麻烦帮忙看下哈。
  1. main(void)
  2. {  

  3.    InitSysCtrl();
  4.    InitPieCtrl();
  5.    InitPieVectTable();//中断向量表的初始化函数
  6.    DINT;
  7.    IER = 0x0000;
  8.    IFR = 0x0000;
  9.    InitXintf();
  10.    InitECanGpio();
  11.    canchushihua();
  12.    configtestled();
  13.    delay(1);
  14.     LcdInit();
  15.    delay(1);
  16.            InitI2CGpio();
  17.         InitI2C();
  18.     epromRead();
  19.     InitCpuTimers();   // For this example, only initialize the Cpu Timers
  20. //        fasong();
  21. //    fasong();
  22.         delay(100);
  23.         ConfigCpuTimer(&CpuTimer0, 150, 100000);
  24.         StartCpuTimer0();

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

  30.     IER |= M_INT1;
  31.    //IER |= M_INT13;
  32.    //IER |= M_INT14;

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

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

  38.    EALLOW;
  39.    GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0;    // GPIO pin
  40.    GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1;     // Output pin
  41.    EDIS;
  42.    EALLOW;  // This is needed to write to EALLOW protected registers
  43.    PieVectTable.ECAN0INTB = &ECAN0INT_ISR;
  44.    EDIS;
  45.     IER |= M_INT9;
  46.    //PieCtrlRegs.PIEIER1.bit.INTx7 = 1;
  47.     PieCtrlRegs.PIEIER9.bit.INTx7 = 1;  //使能Ecan0INT
  48.     EINT;   // Enable Global interrupt INTM
  49.     ERTM;       
  50.        
  51.        

  52.     RW=0;  //245方向  输出        
  53.     delay(1);
  54.     INTFORFFT();
  55.     delay(1);
  56.     START=1;
  57. //  CLEAR=0;
  58.            L=1;
  59.     delay(10);
  60.     Lcdrest();
  61.    
  62.     delay(1);
  63.         LcdInit();
  64.     delay(5);
  65.     Lcdrest();
  66.     LcdInit();
  67.     xianshi0();
  68.     DELAY_US(5);
  69.    
  70.     DELAY_US(5);

  71. // can_xmit(300) ;
  72. // GpioDataRegs.GPCDAT.bit.GPIO79 =0;
  73.     //shuzuchushihua();
  74.                   
  75.         while(1)
  76.          {
  77.   
  78.     handldata(); //参数计算
  79.     RUN_DETECT();
  80.     keyscan();   //按键扫描
  81.         delay(1);
  82.     handlekey(); // 按键处理
  83.         }
  84. }
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 | 显示全部楼层



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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 595332542 发表于 2013-8-16 15:51 | 显示全部楼层
zhangmangui 发表于 2013-8-15 12:19
看看我给你的这两个分享   先确定定时器工作起来

嗯,我昨天看过了,和例程配置一样的,我的配置应该没有问题,自己也写了简单的定时程序,在这个程序我觉得应该是前面I2C中断的影响,使后面定时器无法启动,不知道我的想法合适不,具体原因还没有找到,先谢谢您啦。
zhangmangui 发表于 2013-8-16 15:59 | 显示全部楼层
595332542 发表于 2013-8-16 15:51
嗯,我昨天看过了,和例程配置一样的,我的配置应该没有问题,自己也写了简单的定时程序,在这个程序我觉 ...

好的  仔细查  解决了给大家分享
1831249703 发表于 2014-12-11 17:46 | 显示全部楼层
您好,跟你遇到同样的问题,不知道你解决没有?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

77

帖子

3

粉丝
快速回复 返回顶部 返回列表