搜索
bottom↓
回复: 4

DSP2812定时器0中断执行出错

[复制链接]

出0入0汤圆

发表于 2014-10-4 12:48:04 | 显示全部楼层 |阅读模式
各位大虾,小弟新学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 void  TINT0_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文件或者是库文件的问题,对比两者的文件,没有发现
问题,到底出了什么问题?是我的设置问题吗?还是程序问题?
程序如附件所示。谢谢各位大虾

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2014-10-4 13:27:42 | 显示全部楼层
你下载程序到flash了没有?

出0入0汤圆

 楼主| 发表于 2014-10-4 15:14:39 | 显示全部楼层
lovecxm 发表于 2014-10-4 13:27
你下载程序到flash了没有?

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

出0入0汤圆

 楼主| 发表于 2014-10-9 16:02:53 | 显示全部楼层
问题已经找出,寄存器设置错误,InitCpuTimer(),没有打开,被屏蔽了~谢谢~终于找出愿意

出0入0汤圆

 楼主| 发表于 2014-10-9 16:03:22 | 显示全部楼层
问题已经找出,寄存器设置错误,InitCpuTimer(),没有打开,被屏蔽了~谢谢~终于找出愿意
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 14:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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