我想用系统软中断。但是不知如何使用。
简略代码如下:
1.中断初始化
result = adi_int_CECHook( IVG14,
UserInterruptFunc,
(void *)0x0000000F,
TRUE);
if (ADI_INT_RESULT_SUCCESS == result)
{
printf("\r\n>>ADI_INT_RESULT_SUCCESS");
}
else
{
printf("\r\n>>error");
}
2.软中断函数的实现
static ADI_INT_HANDLER_RESULT UserInterruptFunc(void *ClientHandle)
{
static u32 count;
printf("\r\nUserInterruptFunc %d", count++);
return (ADI_INT_RESULT_PROCESSED);
}
3.软中断的触发
在一个2ms定时器中断里面,添加如下:
if (timer2_count++ >= (1000/2))//1s
{
timer2_count = 0;
raise(IVG14);
}
本意想1s中,运行一次UserInterruptFunc。
但是,结果一直没有运行软中断函数UserInterruptFunc!!!
对软中断如何正确使用,有哪位成功使用过,求教~~
备注:
1.中断初始化成功,可以打印printf("\r\n>>ADI_INT_RESULT_SUCCESS");
2.raise的使用是否正确使用?
3.在程序最先运行已经初始化了中断服务。adi_int_Init
「该帖子被 webom2008 在 2014-09-22 09:53:51 编辑过」