打印
[DSP编程]

为啥DSP2812捕获程序进不了中断啊,程序如下

[复制链接]
2004|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
rqdzss|  楼主 | 2016-12-20 10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "DSP28_Device.h"
Uint16 temp;

void CAP4init()
{
     EvbRegs.GPTCONB.all=0x0000;
     EvbRegs.CAP4FBOT=0x0000;
     EvbRegs.CAP4FIFO=0x0000;
     EvbRegs.CAPFIFOB.all=0x0000;
         EvbRegs.T3CON.bit.TENABLE = 0;//暂时禁止T3计数
     EvbRegs.T3CON.bit.TPS = 0; // 对外部信号不分频
     EvbRegs.T3CON.bit.TMODE = 2; // 连续模式
         EvbRegs.T3CON.bit.TCLKS10=0;        //选择内部时钟
     EvbRegs.T3PR=0xffff;
     EvbRegs.T3CNT=0x0000;
     //EvaRegs.CAPCON.all=0x0210;  //捕获单元2为检测上升沿,选择Timer1为时钟
     //EvaRegs.T1CON.all = 0xf74c;   //Timer1 为连续增,预分频系数为128


         EvbRegs.CAPCONB.bit.CAPRES=0;      //捕获单元复位
         EvbRegs.CAPCONB.bit.CAPQEPN=1;     //使能捕获单元4和5
         EvbRegs.CAPCONB.bit.CAP45TSEL=1;   //选择通用定时器3
         EvbRegs.CAPCONB.bit.CAP4EDGE=1;           //CAP4检测上升沿
               
     EvbRegs.EVBIMRC.bit.CAP4INT=1;     //使能CAP4中断
         EvbRegs.EVBIFRC.bit.CAP4INT=1;     //清除CAP4中断标志位

}   
void IOinit()
{
            EALLOW;               
            GpioMuxRegs.GPBMUX.bit.CAP4Q1_GPIOB8 =1;  //使能 CAP4 引脚
     GpioMuxRegs.GPAMUX.bit.PWM5_GPIOA4=0;     //设置PWM5引脚
         GpioMuxRegs.GPAMUX.bit.PWM6_GPIOA5=0;     //设置PWM6引脚

            EDIS;
}



main(void)
{
    InitSysCtrl();              //系统初始化
           DINT;                   //禁止和清除所有CPU中断
        IER = 0x0000;
        IFR = 0x0000;
    IOinit();
        CAP4init();
        InitPieCtrl();
        InitPieVectTable();
    PieVectTable.CAPINT4 =&CAPINT4_ISR;
        PieCtrlRegs.PIEIER5.bit.INTx5=1;  //使能PIE中断,CAP4中断位于INT5.5
               
        IER|=M_INT5;    //开CPU中断
                    EINT;                         //开全局中断
                ERTM;                         //开实时中断
                        EvbRegs.T3CON.bit.TENABLE=1;      //使能定时器T3计数操

    while (1)
    {

        }
}

相关帖子

沙发
JY-DX-JY| | 2016-12-20 10:05 | 只看该作者
你的中断服务程序呢?

使用特权

评论回复
板凳
rqdzss|  楼主 | 2016-12-20 13:16 | 只看该作者
JY-DX-JY 发表于 2016-12-20 10:05
你的中断服务程序呢?

interrupt void CAPINT4_ISR(void)   // EV-B
{
    GpioDataRegs.GPATOGGLE.bit.GPIOA4=1;
    GpioDataRegs.GPATOGGLE.bit.GPIOA5=1;

    PieCtrlRegs.PIEACK.bit.ACK5=1;   //响应同组中断
        EvbRegs.EVBIFRC.bit.CAP4INT=1;        //清除中断标志位
        EINT;                                //开全局中断
     
}

使用特权

评论回复
地板
rqdzss|  楼主 | 2016-12-20 13:17 | 只看该作者
rqdzss 发表于 2016-12-20 13:16
interrupt void CAPINT4_ISR(void)   // EV-B
{
    GpioDataRegs.GPATOGGLE.bit.GPIOA4=1;

就是进不了中断,不知道问题在哪

使用特权

评论回复
5
rqdzss|  楼主 | 2016-12-20 15:55 | 只看该作者
JY-DX-JY 发表于 2016-12-20 10:05
你的中断服务程序呢?

你好,在吗

使用特权

评论回复
6
JY-DX-JY| | 2016-12-20 16:16 | 只看该作者

我好长时间不用DSP了,你的捕获的管脚给相应脉冲了吗?

使用特权

评论回复
7
rqdzss|  楼主 | 2016-12-23 15:27 | 只看该作者
JY-DX-JY 发表于 2016-12-20 16:16
我好长时间不用DSP了,你的捕获的管脚给相应脉冲了吗?

给了相应的方波了

使用特权

评论回复
8
JY-DX-JY| | 2016-12-24 15:09 | 只看该作者
官网应该有历程吧,对照手册看看。我都忘了

使用特权

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

本版积分规则

3

主题

9

帖子

1

粉丝