在adc.h中这样写:
typedef void(*ADC0_FUNC)(void); //将指针函数声明为一个类型
extern ADC0_FUNC adc0_set_func(ADC0_FUNC func); //中断设定函数的声明
在adc.c中这样写:
//定义一个routine函数,他将利用adc0_set_func()函数将自己指向用户定义的中断函数
ADC0_FUNC adc0_routine;
//设定adc0 的中断函数
ADC0_FUNC adc0_set_func(ADC0_FUNC func)
{
adc0_routine = func;
return adc0_routine;
}
//adc0 的中断函数
void adc0_intrrupt() interrupt INTERRUPT_ADC0_EOC
{
if(adc0_routine)
{
adc0_routine();
}
return;
}
在你写的主函数里面这样写:
//中断函数的定义
void usr_adc0_interrupt(void)
{
/*你自己的中断处理函数*/
}
//将自己写的中断函数设置为真正的中断函数
adc0_set_func(usr_adc0_interrupt) ;
如果你感觉着篇文章对你有用,给我留个言吧!
//***********************************************************************
// name: callback_func 回调函数,任意返回值,任意参数
// author: dayidson
// date: 2010年8月27日14:17:54
// updata:
//***********************************************************************
#include <stdio.h>
typedef void *(*callback_func)(void *);
void run_callback_func(callback_func func, char *p);
void say_hello(char *str)
{
printf("str = %s/n", str);
return;
}
void output_times(void *times)
{
int i;
for(i=0; i<(int)times; i++)
{
printf("i = %d/n", i);
}
return;
}
void run_callback_func(callback_func func, char *p)
{
func(p);
return;
}