int test(void) { int i; rgbled_init(); while(1) { for(i=0; i<100000; i++); rgbled_turnOn(RGBLED_R); for(i=0; i<100000; i++); rgbled_turnOn(RGBLED_G); for(i=0; i<100000; i++); rgbled_turnOn(RGBLED_B); for(i=0; i<100000; i++); rgbled_turnOff(RGBLED_R); for(i=0; i<100000; i++); rgbled_turnOff(RGBLED_G); for(i=0; i<100000; i++); rgbled_turnOff(RGBLED_B); } }
int main(void) { #ifdef WITH_SHELL /* initialize message queue */ msg_init_queue(_main_msg_q, Q_SZ); #endif eui64_t iid; netopt_enable_t acks = NETOPT_DISABLE; kernel_pid_t ifs[GNRC_NETIF_NUMOF]; gnrc_netif_get(ifs); gnrc_netapi_set(ifs[0], NETOPT_AUTOACK, 0, &acks, sizeof(acks)); ipv6_addr_from_str(&dst_addr, "2001:affe:1234::1"); // ipv6_addr_from_str(&dst_addr, "fd38:3734:ad48:0:211d:50ce:a189:7cc4"); /* initialize senml payload */ gnrc_netapi_get(ifs[0], NETOPT_IPV6_IID, 0, &iid, sizeof(eui64_t)); initial_pos = sprintf(&p_buf[initial_pos], "[{\"bn\":\"urn:dev:mac:"); initial_pos += sprintf(&p_buf[initial_pos], "%02x%02x%02x%02x%02x%02x%02x%02x", iid.uint8[0], iid.uint8[1], iid.uint8[2], iid.uint8[3], iid.uint8[4], iid.uint8[5], iid.uint8[6], iid.uint8[7]); initial_pos += sprintf(&p_buf[initial_pos], "\"},"); rgbled_init(&led, PWM_1, 2, 0, 1); thread_create(coap_stack, sizeof(coap_stack), PRIO - 1, THREAD_CREATE_STACKTEST, microcoap_server, NULL, "coap"); #ifdef WITH_SHELL thread_create(beac_stack, sizeof(beac_stack), PRIO, THREAD_CREATE_STACKTEST, beaconing, NULL, "beaconing"); char line_buf[SHELL_DEFAULT_BUFSIZE]; shell_run(shell_commands, line_buf, SHELL_DEFAULT_BUFSIZE); #else beaconing(NULL); #endif return 0; }
int main() { board_init(); uart_init(); esc_init(); rgbled_init(); rgbled_set(0xFF8000, 100); spektrum_init(); rgbled_set(0xFF8000, 100); xbee_init(); i2c_init(); alt_init(); mag_init(); mpu_init(); sonar_init(); ins_init(); inscomp_init(); altitude_init(); controller_init(); basestation_init(); flight_init(); controlpanel_run(); }
void led_thread(void) { msg_t msg; int ret; color_hsv_t hsv_0; color_hsv_t hsv_1; color_rgb_t rgb; float step_h = 1.0f; float step_s = 0.02f; float step_v = 0.02f; int step = 0; int state = 1; int limit = 1; color_rgb_t *sequ = cd_sequ; rgbled_t led; /* initialize RGB-LED */ rgbled_init(&led, PWM_0, 0, 1, 2); while (1) { /* see if something has come up */ if (state == limit) { notify_done(); ++state; } if (state >= limit) { ret = msg_receive(&msg); } else { ret = msg_try_receive(&msg); } /* if message was receive, act on it */ if (ret == 1) { printf("led: got message %i\n", msg.type); if (msg.type != last_cmd) { switch (msg.type) { case MSG_GAME_START: puts("led: starting game"); sequ = cd_sequ; state = 1; limit = GAME_LED_COUNTDOWN_LEN; last_cmd = msg.type; break; case MSG_GAME_SCORE: printf("led: displaying score: %i\n", (unsigned int)msg.content.value); if (PLAYER == msg.content.value) { puts("led: WIN sequence"); sequ = win_sequ; limit = GAME_LED_WIN_LEN; } else if (msg.content.value == GAME_STATE_DRAW) { puts("led: DRAW sequence"); sequ = draw_sequ; limit = GAME_LED_DRAW_LEN; } else { puts("led: LOSE sequence"); sequ = lose_sequ; limit = GAME_LED_LOSE_LEN; } state = 1; last_cmd = msg.type; break; } } } if (state < limit) { /* update color */ if (step == 0) { printf("led: setting color fr 0x%02x 0x%02x 0x%02x\n", sequ[state - 1].r, sequ[state - 1].g, sequ[state - 1].b); printf("led: setting color to 0x%02x 0x%02x 0x%02x\n", sequ[state].r, sequ[state].g, sequ[state].b); color_rgb2hsv(&sequ[state - 1], &hsv_0); color_rgb2hsv(&sequ[state ], &hsv_1); step_h = (hsv_0.h - hsv_1.h) / STEPS; step_s = (hsv_0.s - hsv_1.s) / STEPS; step_v = (hsv_0.v - hsv_1.v) / STEPS; printf("led: steps are h+= %i s+= %i v+= %i\n", (int)(step_h * 100),(int)(step_s * 100), (int)(step_v * 100)); } /* set color */ color_hsv2rgb(&hsv_0, &rgb); rgbled_set(&led, &rgb); ++step; hsv_0.h += step_h; hsv_0.s += step_s; hsv_0.v += step_v; /* check if transition is finished */ if (step == STEPS) { step = 0; ++state; } } /* wait for next step */ vtimer_usleep(PAUSE); } }