
whzbest
的帖子看来你没有好好读TI的文档资料啊。在使用DSP/BIOS,调用硬件中断时,一定要去掉main函数中的while(1)循环,这样,DSP/BIOS内核才能进行进程的调度。你的硬件中断之所以没有检测到,可能是因为你对中断的配置没有配置好。另外,要想在HWI中触发SWI,直接在HWI
ISR中使用SWI_post()即可。若要在HWI中调用TSK,需要使用SEM_post(&semaphore)
最简单的情况,拿溢出中断来说吧。当你设置的值超过计数值后,就会产生溢出中断,贴个程序你看一下。#include "DSP281x_Device.h"
Uint16 Number_10ms = 0
#pragma CODE_SECTION(User_T3PINT_Isr, "ramfuncs")
interrupt void User_T3PINT_Isr(void)// EV-A
{
Number_10ms = (Number_10ms + 1) % 188
if(Number_20ms==0)
{
/////此处写你自己想要在中断中执行的函数。因为这个时中弊候就会产生中断。
}
EvbRegs.EVBIFRA.bit.T3PINT=1
PieCtrlRegs.PIEACK.all |= PIEACK_GROUP4
PieCtrlRegs.PIEIER2.bit.INTx4=1
IER|=M_INT2
}
void main(void)
{
InitSysCtrl()
DINT
InitPieCtrl()
IER = 0x0000
IFR = 0x0000
InitPieVectTable()
EALLOW
PieVectTable.T3PINT = &User_T3PINT_Isr
EDIS
MemCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd,&RamfuncsRunStart)
EnT3PINT()
EINT // Enable Global interrupt INTM
ERTM // Enable Global realtime interrupt DBGM
while(1)
{}//循环,等待中断
}
好了,大概就是老培拍这样了,中断有很多种的,还是需要自己去慢慢侍羡弄的哦
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)