void init() { sys_init(); // this utest requires very basic gpio module also gpio_init_pin(&gpio_mco); gpio_init_pin(&gpio_systick); }
/** * \brief Initialize the sensor ports of the EV3 by setting the correct pin-multiplexing configuration * * \return none **/ void sensor_init(void) { unsigned int i; for (i = 0; i < sizeof(ports) / sizeof(ports[0]); ++i) { gpio_init_inpin(ports[i].pin1); gpio_init_inpin(ports[i].pin2); gpio_init_outpin(ports[i].pin5); gpio_init_pin(ports[i].pin6); gpio_init_pin(ports[i].buffer); } /* Disable Pull-Up/Pull-Down Resistors */ *((volatile unsigned int*)(SOC_SYSCFG_1_REGS + 0x0C)) &= ~0xFFFFFFFF; }
sensor_init (void) { unsigned int i; for (i = 0; i < sizeof(ports) / sizeof(ports[0]); ++i) { gpio_init_inpin(ports[i].pin1); gpio_init_inpin(ports[i].pin2); gpio_init_outpin(ports[i].pin5); gpio_init_pin(ports[i].pin6); gpio_init_pin(ports[i].buffer); } // disable pull-dpwn *((volatile unsigned int*)(SYSCFG1_BASE + 0x0C)) &= ~0xFFFFFFFF; }
adc_init (void) { // init adc power pins gpio_init_pin(GPIO_PIN(6, 14)); // 5VONIGEN gpio_init_pin(GPIO_PIN(0, 6)); // ADCBATEN // enable battery power on adc GPIO_SET(GPIO_PIN(0, 6)) = GPIO_MASK(GPIO_PIN(0, 6)); GPIO_DIR(GPIO_PIN(0, 6)) &= ~GPIO_MASK(GPIO_PIN(0, 6)); spi_update(0x400F); spi_update(0x400F); spi_update(0x400F); spi_update(0x400F); spi_update(0x400F); spi_update(0x400F); }
void gpio_init_inpin (unsigned int pin) { SYSCFG_UNLOCK; gpio_init_pin(pin); // set direction GPIO_DIR(pin) |= GPIO_MASK(pin); SYSCFG_LOCK; }
void gpio_init_outpin (unsigned int pin) { SYSCFG_UNLOCK; gpio_init_pin(pin); // clear pin data and set direction GPIO_CLR(pin) = GPIO_MASK(pin); GPIO_DIR(pin) &= ~GPIO_MASK(pin); SYSCFG_LOCK; }
int spi_master_init(hacs_spi_t bus, uint32_t freq, uint8_t cpol, uint8_t cpha) { SPI_HandleTypeDef *p_handle = &spi_handles[bus]; // Initialize the CS pin gpio_init_pin(hacs_spi_cs_port[bus], hacs_spi_cs_pin[bus], HACS_GPIO_MODE_OUTPUT_PP, HACS_GPIO_NO_PULL); gpio_write_low(hacs_spi_cs_port[bus], hacs_spi_cs_pin[bus]); p_handle->Instance = hacs_spi_instances[bus]; p_handle->Init.Mode = SPI_MODE_MASTER; p_handle->Init.Direction = SPI_DIRECTION_2LINES; p_handle->Init.DataSize = SPI_DATASIZE_8BIT; if (cpol == HACS_SPI_CPOL_1) { p_handle->Init.CLKPolarity = SPI_POLARITY_HIGH; // CPOL = 1 } else if (cpol == HACS_SPI_CPOL_0) { p_handle->Init.CLKPolarity = SPI_POLARITY_LOW; // CPOL = 0 } else { return -1; // invalid param } if (cpha == HACS_SPI_CPHA_1) { p_handle->Init.CLKPhase = SPI_PHASE_2EDGE; // CPHA = 1 } else if (cpha == HACS_SPI_CPHA_0) { p_handle->Init.CLKPhase = SPI_PHASE_1EDGE; // CPHA = 0 } else { return -1; // invalid param } p_handle->Init.NSS = SPI_NSS_SOFT; p_handle->Init.BaudRatePrescaler = calc_prescaler_from_freq(bus, freq) << 3; p_handle->Init.FirstBit = SPI_FIRSTBIT_MSB; p_handle->Init.TIMode = SPI_TIMODE_DISABLED; p_handle->Init.CRCCalculation = SPI_CRCCALCULATION_DISABLED; p_handle->Init.CRCPolynomial = 7; // don't care // Create bus lock spi_locks[bus] = xSemaphoreCreateMutex(); return HAL_SPI_Init(p_handle); }
void gpio_init_pins(const gpio_pin *pins, size_t count) { for (size_t i = 0; i < count; i++) gpio_init_pin(&pins[i]); }
void init_drivers( ) { usart_init(USART_SET_THIS_BAUDRATE); gpio_init_pin(PIN_2T0, GPIO_OUTPUT, GPIO_LOW); gpio_init_pin(PIN_2T1, GPIO_OUTPUT, GPIO_LOW); gpio_init_pin(PIN_2T2, GPIO_OUTPUT, GPIO_LOW); gpio_init_pin(PIN_2T3, GPIO_OUTPUT, GPIO_LOW); gpio_init_pin(PIN_5T0, GPIO_INPUT, GPIO_NO_PULL_UP); gpio_init_pin(PIN_5T1, GPIO_INPUT, GPIO_NO_PULL_UP); gpio_init_pin(PIN_5T2, GPIO_INPUT, GPIO_NO_PULL_UP); gpio_init_pin(PIN_5T3, GPIO_INPUT, GPIO_NO_PULL_UP); gpio_init_pin(PIN_5T4, GPIO_INPUT, GPIO_NO_PULL_UP); gpio_init_pin(PIN_5T5, GPIO_INPUT, GPIO_NO_PULL_UP); gpio_init_pin(PIN_5T6, GPIO_INPUT, GPIO_NO_PULL_UP); gpio_init_pin(PIN_5T7, GPIO_INPUT, GPIO_NO_PULL_UP); gpio_init_pin(PIN_5T8, GPIO_INPUT, GPIO_NO_PULL_UP); gpio_init_pin(PIN_5T9, GPIO_INPUT, GPIO_NO_PULL_UP); gpio_init_pin(PIN_5T10, GPIO_INPUT, GPIO_NO_PULL_UP); gpio_init_pin(PIN_5T11, GPIO_INPUT, GPIO_NO_PULL_UP); gpio_init_pin_as_adc(PIN_7T0_ADC0); gpio_init_pin_as_adc(PIN_7T0_ADC1); }