[Icc-avr] Function Pointer with arguments?
Sylvain Bissonnette
sbissonnette at microsyl.com
Thu May 31 18:57:39 PDT 2007
Hi,
I have some code that use function pointer with no argument, but I need to
pass one argument.
Now it's look like
TaskRegister(&KeyScan,T100MS);
but now I want something like
TaskRegister(&KeyScan(int x),T100MS);
Here is my code with no argument I want to modify
Any help will be welcome
Thanks
//********************************
// G L O B A L V A R I A B L E
//********************************
typedef struct Task
{
void (*FunctionPTR)(void);
uint Interval;
uint Ticker;
}Task;
Task TaskList[MAX_TASK];
int TaskMax = 0;
//------------------------------------
int TaskRegister(void(*FunctionPTR)(void),
uint Interval)
{
TaskList[TaskMax].FunctionPTR = FunctionPTR;
TaskList[TaskMax].Interval = Interval;
TaskList[TaskMax].Ticker = 0;
TaskMax++;
}
//----------------------------------------
#pragma interrupt_handler TaskExecute:12
void TaskExecute(void)
{
static ushort i,j;
static void (*FunctionPTR)(void);
TCNT0 = 255 - (XTAL / 8 / 10000);
for (i=0;i<TaskMax;i++)
{
if (TaskList[i].Ticker++ >= TaskList[i].Interval)
{
FunctionPTR = TaskList[i].FunctionPTR;
TaskList[i].Ticker = 0;
FunctionPTR();
}
}
}
More information about the Icc-avr
mailing list