/// @brief Initialize 1000HZ timer task /// @return void. MEMSPACE void ms_init() { ms_time = 0; if(set_timers(ms_task,1) == -1) printf("Clock task init failed\n"); }
/*---------------------------------------------------------------------------*/ void neighbor_discovery_start(struct neighbor_discovery_conn *c, uint16_t val) { c->current_interval = c->initial_interval; c->val = val; set_timers(c); }
/// @brief Setup all timers tasksi and enable interrupts /// /// @see clock_task() /// @see: timer_hal.c for hardware dependent interface // /// @return void MEMSPACE void init_timers() { printf("Timers init called\n"); if(!timers_configured) { install_timers_isr(); timers_configured = 1; timers_enabled = 0; printf("Timers configured\n"); } delete_all_timers(); clock_clear(); printf("Clock Init\n"); /// See time.c if(set_timers(clock_task,1) == -1) printf("Clock task init failed\n"); printf("Clock Installed\n"); enable_timers(); printf("Timers enabled\n"); }
/*---------------------------------------------------------------------------*/ static void new_announcement(uint16_t id, uint8_t has_value, uint16_t newval, uint16_t oldval, uint8_t bump) { if(bump == ANNOUNCEMENT_BUMP) { c.current_interval = c.initial_interval; set_timers(); /* } else if(newval != oldval) { c.current_interval = c.min_interval; set_timers();*/ } }
/*---------------------------------------------------------------------------*/ static void send_timer(void *ptr) { clock_time_t interval; interval = c.current_interval * 2; if(interval > c.max_interval) { interval = c.max_interval; } c.current_interval = interval; /* printf("current_interval %lu\n", (long unsigned int) interval);*/ set_timers(); }
/*---------------------------------------------------------------------------*/ static void send_timer(void *ptr) { struct neighbor_discovery_conn *c = ptr; clock_time_t interval; interval = c->current_interval * 2; if(interval > c->max_interval) { interval = c->max_interval; } c->current_interval = interval; /* printf("current_interval %lu\n", (long unsigned int) interval);*/ PRINTF("current_interval %lu\n", (long unsigned int) interval); set_timers(c); }