long (*fonc_inter_list[])(void)={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; char inter_speed[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; unsigned char nb_inter; unsigned char i_inter; unsigned long inc; unsigned long tempp_inter; long interfc_null(void){;} //fonction vide long (*fonc_temp)(void); //INT_HANDLER OldInt5 = NULL; DEFINE_INT_HANDLER(MyInt5) { ExecuteHandler(OldInt5); //dû a un bug de gtc, myint5 doit commencer que par cette ligne inc++; //for(i_inter=0;i_inter<20;i_inter++) for(i_inter=1;i_inter<=22;i_inter++) { tempp_inter=inter_speed[i_inter]; if(inter_speed[i_inter]==0) tempp_inter=inc; else tempp_inter=(inc%tempp_inter); if(!tempp_inter && inter_speed[i_inter]) { (*(fonc_inter_list[i_inter]))(); } } //printf("hello"); } void init_inter(void) //*basic_data_ptr,nb_execbas,execbas_list[30]; { char i; for(i=1;i<=22;i++) { fonc_inter_list[i]=interfc_null; inter_speed[i]=0; //26/06/2020 nb_inter=0; inc=0; } } void f_inter_(unsigned char iden, unsigned char speed) { //long (*fonc_temp)(void); unsigned char i; if(iden==0) //disable all interruptions { for(i=1;i<=22;i++) {inter_speed[i]=0;} return; } if(iden!=0 && speed==0) inter_speed[iden]=0; switch(iden) { case 1: fonc_temp=interfc1; break; case 2: fonc_temp=interfc2; break; case 3: fonc_temp=interfc3; break; case 4: fonc_temp=interfc4; break; case 5: fonc_temp=interfc5; break; case 6: fonc_temp=interfc6; break; case 7: fonc_temp=interfc7; break; case 8: fonc_temp=interfc8; break; case 9: fonc_temp=interfc9; break; case 10: fonc_temp=interfc10; break; case 11: fonc_temp=interfc11; break; case 12: fonc_temp=interfc12; break; case 13: fonc_temp=interfc13; break; case 14: fonc_temp=interfc14; break; case 15: fonc_temp=interfc15; break; case 16: fonc_temp=interfc16; break; case 17: fonc_temp=interfc17; break; case 18: fonc_temp=interfc18; break; case 19: fonc_temp=interfc19; break; case 20: fonc_temp=interfc20; break; case 21: fonc_temp=interfc21; break; case 22: fonc_temp=interfc22; break; } fonc_inter_list[iden]=fonc_temp; inter_speed[iden]=speed; }