DSP定时器0问题

中断程序是这样写的:interruptvoidcpu_timer0_isr(void){CpuTimer0.InterruptCount++;//LED1反转GpioDa... 中断程序是这样写的:
interrupt void cpu_timer0_isr(void)
{
CpuTimer0.InterruptCount++; //LED1反转
GpioDataRegs.GPATOGGLE.bit.GPIO1 = 1;
}

其他相关的初始化代码:
void timer_select(void)
{
EALLOW;
PieVectTable.TINT0 = &cpu_timer0_isr;
PieVectTable.TINT1 = &cpu_timer1_isr;
PieVectTable.TINT2 = &cpu_timer2_isr;
EDIS;
}

void main(void)
{
InitSysCtrl(); //初始化系统
gpio_select(); //初始化GPIO
InitPieCtrl(); //初始化PIE控制寄存器
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable(); //初始化中断向量
timer_select(); //设置定时器中断向量
InitCpuTimers(); //初始化定时器

//配置定时器
ConfigCpuTimer(&CpuTimer0, 30, 1000000);
CpuTimer0Regs.TCR.bit.TSS = 0;

IER |= M_INT1;

PieCtrlRegs.PIEIER1.bit.INTx7 = 1;

//开总中断
EINT; // Enable Global interrupt INTM
ERTM; // Enable Global realtime interrupt DBGM

for(;;)
{
}
}

但是只会中断一次,之后就不中断了,请问是什么原因,是不是设置不对,或者是在中断里面需要再其他代码呢。。。
只是定时器0有问题,其他两个没问题。
开发板是EasyDSP28022
谢谢!!!
展开
 我来答
_Tomoyo
2011-08-03 · TA获得超过148个赞
知道小有建树答主
回答量:250
采纳率:0%
帮助的人:189万
展开全部
添加对PIE相关寄存器的清零
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
全测科技
2024-12-19 广告
SMBV100B信号发生器是罗德与施瓦茨公司的一款矢量信号发生器,兼具卓越的性能特性。其频率范围介于8kHz至6GHz,覆盖数字无线通信的所有重要射频频段,调制带宽高达500MHz,满足四代和五代通信标准的严苛要求。同时,它可在极高功率电平... 点击进入详情页
本回答由全测科技提供
laohu200002
2011-08-12
知道答主
回答量:6
采纳率:0%
帮助的人:3.4万
展开全部
interrupt void cpu_timer0_isr(void)
{
CpuTimer0.InterruptCount++; //LED1反转
GpioDataRegs.GPATOGGLE.bit.GPIO1 = 1;
PieCtrl.PIEACK.bit.ACK7=1;
试试看看
追问
果然是高手。我刚学DSP,很多都不清楚。为什么Timer1和Timer2不需要ACK7=1; 呢,能解释一下么。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式