Пример #1
0
// (spi-ssoff 'num) -> Nil
any plisp_spi_ssoff(any ex) {
    unsigned id;
    any x, y;

    x = cdr(ex);
    NeedNum(ex, y = EVAL(car(x)));
    id = unBox(y); // get id.
    MOD_CHECK_ID(ex, spi, id);

    platform_spi_select(id, PLATFORM_SPI_SELECT_OFF);
    return Nil;
}
Пример #2
0
void platform_init(void)
{
  //init mutexes
#ifdef CONFIG_OS_USE_FREERTOS
#ifdef CONFIG_MCUAL_SPI
  mutex_spi = xSemaphoreCreateMutex();
#endif
#ifdef CONFIG_MCUAL_I2C
  mutex_i2c = xSemaphoreCreateMutex();
#endif
#endif
  
  //init clock
  mcual_clock_init(MCUAL_CLOCK_SOURCE_INTERNAL, PLATFORM_MAIN_CLOCK_KHZ); 
  
  //init leds
  mcual_gpio_init(MCUAL_GPIOB, MCUAL_GPIO_PIN9, MCUAL_GPIO_OUTPUT);
  mcual_gpio_clear(MCUAL_GPIOB, MCUAL_GPIO_PIN9);
  
  //init gpio
  mcual_gpio_init(MCUAL_GPIOE, MCUAL_GPIO_PIN8, MCUAL_GPIO_INPUT);
  mcual_gpio_init(MCUAL_GPIOB, MCUAL_GPIO_PIN8, MCUAL_GPIO_OUTPUT);
  
  //init encoders
  //enc rigth
  mcual_gpio_init(MCUAL_GPIOA, MCUAL_GPIO_PIN0, MCUAL_GPIO_OUTPUT);
  mcual_gpio_init(MCUAL_GPIOA, MCUAL_GPIO_PIN1, MCUAL_GPIO_OUTPUT);
  mcual_gpio_set_function(MCUAL_GPIOA, MCUAL_GPIO_PIN0, 1);
  mcual_gpio_set_function(MCUAL_GPIOA, MCUAL_GPIO_PIN1, 1);

  //enc left
  mcual_gpio_init(MCUAL_GPIOA, MCUAL_GPIO_PIN15, MCUAL_GPIO_OUTPUT);
  mcual_gpio_init(MCUAL_GPIOB, MCUAL_GPIO_PIN3, MCUAL_GPIO_OUTPUT);
  mcual_gpio_set_function(MCUAL_GPIOA, MCUAL_GPIO_PIN15, 2);
  mcual_gpio_set_function(MCUAL_GPIOB, MCUAL_GPIO_PIN3, 2);

  mcual_timer_init_encoder(MCUAL_TIMER2); 
  mcual_timer_init_encoder(MCUAL_TIMER5); 
  //init uart dbg pins
  mcual_gpio_init(MCUAL_GPIOA, MCUAL_GPIO_PIN9, MCUAL_GPIO_OUTPUT);
  mcual_gpio_init(MCUAL_GPIOA, MCUAL_GPIO_PIN10, MCUAL_GPIO_INPUT);
#ifdef CONFIG_MCUAL_USART
  mcual_gpio_set_function(MCUAL_GPIOA, MCUAL_GPIO_PIN9, 7);
  mcual_gpio_set_function(MCUAL_GPIOA, MCUAL_GPIO_PIN10, 7);
  mcual_usart_init(PLATFORM_USART_DEBUG, 115200);
#endif
  
  //init adc
  mcual_gpio_init(MCUAL_GPIOC, MCUAL_GPIO_PIN0, MCUAL_GPIO_INPUT);
#ifdef CONFIG_MCUAL_ADC
  mcual_gpio_set_function(MCUAL_GPIOC, MCUAL_GPIO_PIN0, MCUAL_GPIO_FUNCTION_ANALOG);
  mcual_adc_init();
#endif

  //init spi
  mcual_gpio_init(MCUAL_GPIOD, MCUAL_GPIO_PIN2, MCUAL_GPIO_OUTPUT);
  mcual_gpio_init(MCUAL_GPIOC, MCUAL_GPIO_PIN11, MCUAL_GPIO_INPUT);
  mcual_gpio_init(MCUAL_GPIOC, MCUAL_GPIO_PIN10 | MCUAL_GPIO_PIN12, MCUAL_GPIO_OUTPUT);
#ifdef CONFIG_MCUAL_SPI
  mcual_gpio_set_function(MCUAL_GPIOC, MCUAL_GPIO_PIN10, 6);
  mcual_gpio_set_function(MCUAL_GPIOC, MCUAL_GPIO_PIN11, 6);
  mcual_gpio_set_function(MCUAL_GPIOC, MCUAL_GPIO_PIN12, 6);
#endif
  mcual_gpio_set(MCUAL_GPIOD, MCUAL_GPIO_PIN2);

#ifdef CONFIG_OS_USE_FREERTOS
#ifdef CONFIG_MCUAL_SPI
  platform_spi_select(PLATFORM_SPI_CS_UNSELECT);
  mcual_spi_master_init(MCUAL_SPI3, MCUAL_SPI_MODE_3, 400000);
#endif
#endif

  //init can pins
  mcual_gpio_init(MCUAL_GPIOD, MCUAL_GPIO_PIN1, MCUAL_GPIO_OUTPUT);
  mcual_gpio_init(MCUAL_GPIOD, MCUAL_GPIO_PIN0, MCUAL_GPIO_INPUT);
  mcual_gpio_set_function(MCUAL_GPIOD, MCUAL_GPIO_PIN0, 9);
  mcual_gpio_set_function(MCUAL_GPIOD, MCUAL_GPIO_PIN1, 9);

  //init i2c
  mcual_gpio_init(MCUAL_GPIOB, MCUAL_GPIO_PIN6 | MCUAL_GPIO_PIN7, MCUAL_GPIO_INPUT);
#ifdef CONFIG_MCUAL_I2C
  mcual_gpio_set_function(MCUAL_GPIOB, MCUAL_GPIO_PIN6, 4);
  mcual_gpio_set_function(MCUAL_GPIOB, MCUAL_GPIO_PIN7, 4);
  mcual_gpio_set_output_type(MCUAL_GPIOB, MCUAL_GPIO_PIN6, MCUAL_GPIO_OPEN_DRAIN);
  mcual_gpio_set_output_type(MCUAL_GPIOB, MCUAL_GPIO_PIN7, MCUAL_GPIO_OPEN_DRAIN);
  mcual_i2c_master_init(MCUAL_I2C1, 100000);
#endif

}