예제 #1
0
파일: sys_utest.c 프로젝트: othane/mos
void init()
{
	sys_init();

	// this utest requires very basic gpio module also
	gpio_init_pin(&gpio_mco);
	gpio_init_pin(&gpio_systick);
}
예제 #2
0
파일: init.c 프로젝트: ev3osek/ev3osek
/**
* \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;
}
예제 #3
0
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;
}
예제 #4
0
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);
}
예제 #5
0
void
gpio_init_inpin (unsigned int pin)
{
  SYSCFG_UNLOCK;

  gpio_init_pin(pin);

  // set direction
  GPIO_DIR(pin) |=  GPIO_MASK(pin);

  SYSCFG_LOCK;
}
예제 #6
0
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);
}
예제 #8
0
void gpio_init_pins(const gpio_pin *pins, size_t count)
{
    for (size_t i = 0; i < count; i++)
        gpio_init_pin(&pins[i]);
}
예제 #9
0
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);
}