那是星期六 发表于 2014-10-4 12:48:04

DSP2812定时器0中断执行出错

各位大虾,小弟新学DSP,在用定时器0中断点灯过程中出现了一个很诡异的现象,求各位指正。
我的输出口是GPIOA0,主程序和中断程序如下:
#include "DSP28_Device.h"
void InitGpio(void)
{

   EALLOW;
   
    GpioMuxRegs.GPAMUX.bit.PWM1_GPIOA0=0;
        GpioMuxRegs.GPADIR.bit.GPIOA0=1;
        GpioDataRegs.GPASET.bit.GPIOA0=1;
   // 在这里插入初始化函数的代码
   
   EDIS;

}       
#include"DSP28_Device.h"
void main(void)
{
   InitSysCtrl();          //初始化系统函数

   DINT;      //禁止和清除所有CPU中断
   IER=0x0000;//禁止CPU中断
   IFR=0x0000;//清除CPU中断标志

   InitPieCtrl();        //初始化PIE控制寄存器
   InitPieVectTable();        //初始化PIE中断向量表
   InitPeripherals();       //初始化CPU定时器模块
   InitGpio();                       //初始化GPIO

   PieCtrl.PIEIER1.bit.INTx7=1;           //使能PIE模块中的CPU定时器0中断
   IER|=M_INT1;                                          //开CPU中断1
   EINT;                                               //使能全局中断
   ERTM;//使能实时中断

   ConfigCpuTimer(&CpuTimer0,150,1000000);//cpu定时器0的周期为1S
   StartCpuTimer0();                   //启动CPU定时器0
   while(1)                                          
   {}

}
interrupt voidTINT0_ISR(void)      // CPU-Timer0中断函数
{
        CpuTimer0.InterruptCount++;
        if(CpuTimer0.InterruptCount==1)
        {
                GpioDataRegs.GPACLEAR.bit.GPIOA0=1;
        }

        if(CpuTimer0.InterruptCount==2)
        {
       
        GpioDataRegs.GPASET.bit.GPIOA0=1;
          CpuTimer0.InterruptCount=0;
        }
        CpuTimer0Regs.TCR.bit.TIF=1;
        PieCtrl.PIEACK.bit.ACK1=1;
        EINT;

}
程序编译以后,下载执行老是灯处以亮的状态,不闪烁,但是在CCS3.3打开另外一个例程以后再来编译,诡异的事情发生了,同一个程序,这时候灯开始闪了。关掉CCS3.3以后
再打开这个工程,编译,尽然又是不闪!关掉ccs打开例程,灯是闪的。这时候再打开这个工程,灯竟然闪了!我怀疑是CMD文件或者是库文件的问题,对比两者的文件,没有发现
问题,到底出了什么问题?是我的设置问题吗?还是程序问题?
程序如附件所示。谢谢各位大虾

lovecxm 发表于 2014-10-4 13:27:42

你下载程序到flash了没有?

那是星期六 发表于 2014-10-4 15:14:39

lovecxm 发表于 2014-10-4 13:27
你下载程序到flash了没有?

没有的,在线仿真,下载到了sRAM里面

那是星期六 发表于 2014-10-9 16:02:53

问题已经找出,寄存器设置错误,InitCpuTimer(),没有打开,被屏蔽了~谢谢~终于找出愿意

那是星期六 发表于 2014-10-9 16:03:22

问题已经找出,寄存器设置错误,InitCpuTimer(),没有打开,被屏蔽了~谢谢~终于找出愿意
页: [1]
查看完整版本: DSP2812定时器0中断执行出错