2627|0

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

求问在DSP2812中 PieVectTable用法 [复制链接]

在例程1中

#include "DSP28_Device.h"

unsigned int *LedADDR  = (unsigned int *) 0x2800;    //8个发光二极管寄存器地址

unsigned int Count,Flag;
/////////////////对应位低电平点亮该位发光二极管
const    Uint16    LedCode[9]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF};

interrupt void ISRTimer0(void);
         
void main(void)
{
    InitSysCtrl();                    //初始化系统

    DINT;                        //关中断
    IER = 0x0000;
    IFR = 0x0000;

    InitPieCtrl();                    //初始化PIE
    InitPieVectTable();                //初始化PIE中断矢量表
    InitPeripherals();                //初始化外设
    InitGpio();
    EALLOW;    
    PieVectTable.TINT0 = &ISRTimer0;
    EDIS;   
    
     Count = 0;                    //初始化变量
    Flag=0;
    ConfigCpuTimer(&CpuTimer0, 10, 10000000);    //设置CPU
     StartCpuTimer0();
    
    IER |= M_INT1;                    //开中断
    PieCtrl.PIEIER1.bit.INTx7=1;

    EINT;                        // 允许INTM
    ERTM;                        // 允许DBGM

    *LedADDR = 0x00;                    // 点亮全部8个LED灯
    for(;;)
    {    ;    }

}     

interrupt void ISRTimer0(void)
{
    PieCtrl.PIEACK.bit.ACK7=1;
    *LedADDR = LedCode[Count];            //依次点亮灯,置相应位低电平
    if (Flag==0) Count++;
    if (Count>=8)//循环    
    {
       Flag=0;
    Count=0;}

}

 

在例程9中

#include "DSP28_Device.h"

unsigned  int  *LedADDR  = (unsigned int *)0x2800;    //LED 控制寄存器

interrupt void ExtIntISR(void);

Uint16 Temp; 

 

void main(void)

{

 

InitSysCtrl(); //初始化系统

 

DINT; //关中断

IER = 0x0000;

IFR = 0x0000;

 

InitPieCtrl();        //初始化PIE

InitPieVectTable(); //初始化PIE中断矢量表

    InitPeripherals();      //初始化外设

  InitGpio(); //初始化GPIO

InitXIntrupt(); //初始化外部中断

EALLOW;

PieVectTable.XINT1 = &ExtIntISR;  

 

EDIS;   

    

    *LedADDR=0xFF; //turn off all led lights

 

IER |= M_INT1;     //开中断

    PieCtrl.PIEIER1.bit.INTx4 = 1;  //外部中断1所在PIE分组1中的第4位

 

EINT;    // Enable INTM

ERTM; // Enable DBGM

    Temp=0xFF;

for(;;);

 

interrupt void ExtIntISR(void)

{

 

PieCtrl.PIEACK.all = 0xFFFF;

PieCtrl.PIEIFR1.bit.INTx4 = 0;

ERTM;

Temp^=0xFF;

*LedADDR = Temp;

}

 

出现的PieVectTable,想请问其作用及其用法,谢谢

点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表