在定时器中断函数中写一个事件函数,触发中断后调用上层C++类对象设置的回调函数,但是这个上层对象类型不确定,传给定时器的只有一个回调函数地址和该对象本身this的地址。
现在要怎么写?我想到的结构应该就像下面的,或是其他实现?
<Timer.c>
extern ST_TIMER st_timer;
UINT32 CallFunc(UINT32 funcaddr,UINT32 This)
{
……
}
VOID timer0_irq_handler( VOID )
{
CallFunc(st_timer.funcaddr,st_timer.This);
}
<A.h>
class A
{
void setHandleProc(Uint32 funaddr,Uint32 para);
}
<A.cpp>
ST_TIMER st_timer
void setHandleProc(Uint32 funaddr,Uint32 para){
st_timer.funaddr=funaddr;
st_timer.This = para;
}