/** * [InitTask description] */ __task void InitTask(void) { int msg_len = 0; int clockRate = Chip_Clock_GetMainClockRate(); /* Enabled Clock To GPPIO */ Chip_GPIO_Init(LPC_GPIO); // Set the pin direction, set high for an output LED2 Chip_GPIO_SetPinDIR(LPC_GPIO, 0, 2, 1); /* Serial Driver Enable */ SER_Init(); msg_len = snprintf(message, sizeof(message), "Main clock is: %d\r\n", clockRate); Chip_UART0_SendRB(LPC_USART0, &txring, message, msg_len); for(;;) { os_dly_wait(50); Chip_UART0_SendRB(LPC_USART0, &txring, "Sveiki\r\n", strlen("Sveiki\r\n")); Chip_GPIO_WriteDirBit(LPC_GPIO, 0, 2, 0); os_dly_wait(100); Chip_GPIO_WriteDirBit(LPC_GPIO, 0, 2, 1); } }
void tareaLED(void* p) { devGPIO_pin_t* pin = (devGPIO_pin_t*) p; Chip_GPIO_SetPinDIR(LPC_GPIO, pin->port, pin->bit, 1); while (1) { char state; if (xQueueReceive(queue, &state, portMAX_DELAY) == pdTRUE) { Chip_GPIO_SetPinState(LPC_GPIO, pin->port, pin->bit, state); } else { // timeout } } }
void gpio_set_dir(uint8_t pin, bool output) { Chip_GPIO_SetPinDIR(LPC_GPIO_PORT, 0, pin, output); }