#endif
debug("Loop");
- int ct;
+ struct task *t;
long cyclestart;
- struct task *curtask;
read_message();
//Run tasks
cyclestart = getmillis();
- for(ct = 0; ct<MAXTASKS; ct++){
- //See whether the task is even in use
- if((curtask = task_get(ct)) == NULL){
-// debug("Task %d not implemented\n", ct);
- continue;
- }
+ for(struct task *t = task_head(); t != NULL; t = task_next(t)){
//interrupt task
- if(is_interrupt_task(curtask) && had_interrupt(curtask)){
- debug("Interrupt task %d not implemented", ct);
- run_task(curtask);
+ if(is_interrupt_task(t) && had_interrupt(t)){
+ debug("Interrupt task %d not implemented", t->taskid);
+ run_task(t);
//Interval task, and interval passed
- } else if(cyclestart-curtask->lastrun > curtask->interval){
- debug("Running interval task: %d", ct);
- run_task(curtask);
+ } else if(cyclestart-t->lastrun > t->interval){
+ debug("Running interval task: %d", t->taskid);
+ run_task(t);
//Oneshot task, thus disable
- if(curtask->interval == 0){
- curtask->used = false;
- }
- curtask->lastrun = cyclestart;
+// if(t->interval == 0){
+// curtask->used = false;
+// }
+ t->lastrun = cyclestart;
}
}
}