// (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; }
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 }