static void led_task(BT_HANDLE hThread, void *pParam) { bt_kernel_params *kp = bt_get_kernel_params(); BT_kEventGroupWaitBits(kp->init_group, BT_SYSTEM_INIT_USER_READY, BT_FALSE, BT_TRUE, BT_INFINITE_TIMEOUT); BT_GpioSetDirection(BT_CONFIG_ALIVE_LED_GPIO, BT_GPIO_DIR_OUTPUT); BT_TICK ticks = BT_kTickCount(); BT_TICK ticks_a = ticks; while(1) { ticks_a = BT_kTickCount(); BT_GpioSet(BT_CONFIG_ALIVE_LED_GPIO, INVERT(BT_TRUE)); BT_kTaskDelayUntil(&ticks_a, 10); BT_GpioSet(BT_CONFIG_ALIVE_LED_GPIO, INVERT(BT_FALSE)); BT_kTaskDelayUntil(&ticks_a, 50); BT_GpioSet(BT_CONFIG_ALIVE_LED_GPIO, INVERT(BT_TRUE)); BT_kTaskDelayUntil(&ticks_a, 10); BT_GpioSet(BT_CONFIG_ALIVE_LED_GPIO, INVERT(BT_FALSE)); BT_kTaskDelayUntil(&ticks, BT_CONFIG_ALIVE_LED_PERIOD); } BT_kTaskDelete(NULL); }
int main(int argc, char **argv) { BT_GpioSetDirection(41, BT_GPIO_DIR_OUTPUT); while(1) { BT_GpioSet(41, BT_FALSE); BT_kTaskDelay(500); BT_GpioSet(41, BT_TRUE); BT_kTaskDelay(500); } return 0; }
static int bt_gpio_dir(int argc, char **argv) { if(argc != 3) { bt_printf("Usage: %s {gpio_nr} {1|0}\n", argv[0]); return -1; } BT_u32 gpio = strtoul(argv[1], NULL, 10); BT_u32 state = strtoul(argv[2], NULL, 10); if(!state) { state = BT_GPIO_DIR_INPUT; } else { state = BT_GPIO_DIR_OUTPUT; } BT_GpioSetDirection(gpio, state); return 0; }
static void led_task(void *pParam) { BT_GpioSetDirection(BT_CONFIG_ALIVE_LED_GPIO, BT_GPIO_DIR_OUTPUT); BT_TICK ticks = BT_kTickCount(); BT_TICK ticks_a = ticks; while(1) { ticks_a = BT_kTickCount(); BT_GpioSet(BT_CONFIG_ALIVE_LED_GPIO, INVERT(BT_TRUE)); BT_kTaskDelayUntil(&ticks_a, 10); BT_GpioSet(BT_CONFIG_ALIVE_LED_GPIO, INVERT(BT_FALSE)); BT_kTaskDelayUntil(&ticks_a, 50); BT_GpioSet(BT_CONFIG_ALIVE_LED_GPIO, INVERT(BT_TRUE)); BT_kTaskDelayUntil(&ticks_a, 10); BT_GpioSet(BT_CONFIG_ALIVE_LED_GPIO, INVERT(BT_FALSE)); BT_kTaskDelayUntil(&ticks, BT_CONFIG_ALIVE_LED_PERIOD); } BT_kTaskDelete(NULL); }
void signal_booted() { BT_GpioSetDirection(9, BT_GPIO_DIR_OUTPUT); BT_GpioSet(9, BT_TRUE); }