//thread for debugging void timerlist() { while (1) { mos_mdelay(500); print_clock_list(); } }
void blink_b(void) { /*other_timer.func = other_timer_callback; other_timer.msecs = 300; other_timer.reset_to = 300; mos_alarm(&other_timer); */ while(1) { print_clock_list(); //mos_mdelay(1000); } }
static int clock_tests(int argc, cmd_args *argv) { if (argc < 2) { printf("not enough arguments:\n"); printf("%s <clock-name>\n", argv[0].str); printf("%s ?\n", argv[0].str); goto out; } if(argv[1].str[0] == '?') print_clock_list(); else clock_measure(argv[1].str); out: return 0; }
void start(void) { mos_led_on(1); #ifdef PLATFORM_MICA_ANY dev_mode(DEV_MICA2_LIGHT, DEV_MODE_ON); dev_read(DEV_MICA2_LIGHT,&seed,1); dev_read(DEV_MICA2_LIGHT,(&seed)+1,1); dev_mode(DEV_MICA2_LIGHT, DEV_MODE_OFF); #elif PLATFORM_TELOSB seed = adc_get_conversion16(4); #endif printf("SEED: %x\n", seed); mos_led_off(1); srand(seed); fired1=1; fired2=1; fired3=1; fired4=1; alarm1.func = sem_alarm_func; alarm2.func = sem_alarm_func; alarm3.func = sem_alarm_func; alarm4.func = sem_alarm_func; alarm1.data = (void*)&fired1; alarm2.data = (void*)&fired2; alarm3.data = (void*)&fired3; alarm4.data = (void*)&fired4; alarm1.reset_to = 0; alarm2.reset_to = 0; alarm3.reset_to = 0; alarm4.reset_to = 0; while(1) { if(fired1 == 1) { alarm1.msecs = (((uint16_t)rand() % 100) + 1); fired1=0; mos_alarm(&alarm1); mos_led_toggle(0); #ifdef verbose printf("1 fired!\n"); #endif } if(fired2 == 1) { alarm2.msecs = (((uint16_t)rand() % 100) + 1); fired2=0; mos_alarm(&alarm2); mos_led_toggle(1); #ifdef verbose printf("2 fired!\n"); #endif } if(fired3 == 1) { alarm3.msecs = (((uint16_t)rand() % 100) + 1); fired3=0; mos_alarm(&alarm3); mos_led_toggle(2); #ifdef verbose printf("3 fired!\n"); #endif } if(fired4 == 1) { alarm4.msecs = (((uint16_t)rand() % 100) + 1); fired4=0; mos_alarm(&alarm4); // mos_led_toggle(2); #ifdef verbose printf("4 fired!\n"); #endif } #ifdef verbose print_clock_list(); #endif } }