#Use Taskscheduler to replace below for loop # for (int 1=0; i< 8; i++) { # iterate thru array[i] # delay(1000) # do some other work # } #include Scheduler runner; void t1Callback(); Task t1(TASK_IMMEDIATE,8,&t1Callback); //int global_index=0; //workaround with 8*2 void t1Callback() { int counter=t1.getRunCounter(); Serial.print("t1: "); Serial.println(counter); //counter=1,3,5,7 //iterate thru array using [counter] //does not work,need counter=1,2,3,4,5,6,7,8 t1.setCallback(&t1_1Callback); t1.delay(1000); //global_index++; } void t1_1Callback() { int counter=t1.getRunCounter(); Serial.print("t1_1: "); Serial.println(counter); //counter=2,3,6,8 //do some other work t1.setCallback(&t1Callback); } void setup() { Serial.begin(9600); runner.init(); runner.addTask(t1); t1.enable(); } void loop() { runner.execute(); }