I have written a LIB with the following decleration:
idata u_char clock_occ; idata void (*f_ce)(u_char stat); I use it in the LIB in the way as: clock_occ = 1; f_ce(TRUE); so far, no problem, I compile it -> ok: I add the LIB to my project and use it like: extern idata u_char clock_occ; extern idata void (*f_ce)(u_char stat); void SetChipEnable (u_char stat) { ... } void main (void) { clock_occ=0; f_ce = (void *)SetChipEnable; }
Thanks. I have made this solution: In my "lib"
defTyp idata void (code*f_ce_on)(); defTyp idata void (code*f_ce_off)(); void InitClockLib (u_char *p_ce_on, u_char *p_ce_off) { f_ce_on = p_ce_on; f_ce_off = p_ce_off; }
MCO = 1; f_ce_on();
void SetChipEnableOn (void) { P2 = 0xFF; } void SetChipEnableOff (void) { P2 = 0; }
InitClockLib ( (u_char*) &SetChipEnableOn, (u_char*) &SetChipEnableOff);
Read ! (SetChipEnableOn, SetUhrChipEnableOff), Write ! (SetChipEnableOn, SetUhrChipEnableOff)