Exemplo n.º 1
0
static void timer_drivers_setup()
{
    // Enable Motor timer
    timer_enable(TIM_1);
    timer_enable(TIM_8);

    // Enable Soft timer
    timer_enable(TIM_2);


    // Setting Motor timer to about 2MHz (2^21) = 2097152
    timer_select_internal_clock(TIM_1,
            (rcc_sysclk_get_clock_frequency(RCC_SYSCLK_CLOCK_PCLK1_TIM) / 2097152)
                    - 1);

   boot_success("Starting TIM_1 at about 2MHz\n");

    // Setting servo timer to about 30Hz (2^5) = 32
    // Setting Motor timer to about 2MHz (2^21) = 2097152
    timer_select_internal_clock(TIM_8,
            (rcc_sysclk_get_clock_frequency(RCC_SYSCLK_CLOCK_PCLK1_TIM) / 2097152)
                    - 1);

   boot_success("Starting TIM_8 at about 30Hz\n");

    // Setting Soft timer to about 32kHz
    timer_select_internal_clock(TIM_2,
            (rcc_sysclk_get_clock_frequency(RCC_SYSCLK_CLOCK_PCLK1_TIM) / 2097152)//32768)
                    - 1);
   boot_success("Starting TIM_2 at about 32kHz\n");

    // Start ALL timers
    timer_start(TIM_1, 0xFFFF, NULL, NULL, TIMER_MODE_CLOCK);
    timer_start(TIM_2, 0xFFFF, NULL, NULL, TIMER_MODE_CLOCK);
    timer_start(TIM_8, 0xFFFF, NULL, NULL, TIMER_MODE_CLOCK);


    timer_set_channel_compare(TIM_1, TIMER_CHANNEL_1, 0x00FF, NULL, NULL);
    timer_set_channel_compare(TIM_8, TIMER_CHANNEL_1, 0x00FF, NULL, NULL);
}
Exemplo n.º 2
0
void platform_drivers_setup()
{
    // Set base address and AHB bit for all GPIO ports
    gpio_enable(GPIO_A);
    gpio_enable(GPIO_B);
    gpio_enable(GPIO_C);
    gpio_enable(GPIO_D);

    // Enable the AFIO
    rcc_apb_enable(RCC_APB_BUS_AFIO, RCC_APB_BIT_AFIO);

    // Start the TIM3 at ~32kHz
    timer_enable(TIM_3);
    timer_select_internal_clock(TIM_3, (rcc_sysclk_get_clock_frequency(
                                           RCC_SYSCLK_CLOCK_PCLK1_TIM) / 32768) - 1);
    timer_start(TIM_3, 0xFFFF, NULL, NULL);

    // Enable the print uart
    gpio_set_uart_tx(GPIO_A, GPIO_PIN_9);
    gpio_set_uart_rx(GPIO_A, GPIO_PIN_10);
    uart_enable(UART_1, PLATFORM_UART_PRINT_BAUDRATE);

    // Configure the DMA for the SPIs
    dma_enable(DMA_1_CH4);
    dma_enable(DMA_1_CH5);

    // Configure the SPI 2
    gpio_set_spi_clk(GPIO_B, GPIO_PIN_13);
    gpio_set_spi_miso(GPIO_B, GPIO_PIN_14);
    gpio_set_spi_mosi(GPIO_B, GPIO_PIN_15);
    spi_set_dma(SPI_2, DMA_1_CH4, DMA_1_CH5);
    spi_enable(SPI_2, 4000000, SPI_CLOCK_MODE_IDLE_LOW_RISING);

    // Configure the I2C 1
    gpio_set_i2c_scl(GPIO_B, GPIO_PIN_6);
    gpio_set_i2c_sda(GPIO_B, GPIO_PIN_7);
    i2c_enable(I2C_1, I2C_CLOCK_MODE_FAST);

    // Force inclusion of EXTI
    exti_set_handler(EXTI_LINE_Px0, NULL, NULL);
}