コード例 #1
0
ファイル: pwmout_api.c プロジェクト: nickmolo/ECE477
void pwmout_init(pwmout_t* obj, PinName pin)
{
    // Get the peripheral name from the pin and assign it to the object
    obj->pwm = (PWMName)pinmap_peripheral(pin, PinMap_PWM);

    if (obj->pwm == (PWMName)NC) {
        error("PWM error: pinout mapping failed.");
    }

    // Enable TIM clock
#if defined(TIM1_BASE)
    if (obj->pwm == PWM_1) __TIM1_CLK_ENABLE();
#endif
#if defined(TIM2_BASE)
    if (obj->pwm == PWM_2) __TIM2_CLK_ENABLE();
#endif
    if (obj->pwm == PWM_3) __TIM3_CLK_ENABLE();
    if (obj->pwm == PWM_14) __TIM14_CLK_ENABLE();
    if (obj->pwm == PWM_15) __TIM15_CLK_ENABLE();
    if (obj->pwm == PWM_16) __TIM16_CLK_ENABLE();
    if (obj->pwm == PWM_17) __TIM17_CLK_ENABLE();

    // Configure GPIO
    pinmap_pinout(pin, PinMap_PWM);

    obj->pin = pin;
    obj->period = 0;
    obj->pulse = 0;

    pwmout_period_us(obj, 20000); // 20 ms per default
}
コード例 #2
0
/*init pwm timer block*/
void initPwmTIM16()
{
	__TIM16_CLK_ENABLE();
	TIM16->PSC = LCD_PWM_PRESCALE;
	TIM16->ARR = LCD_PWM_PERIOD; 
	TIM16->CR1 |= (1<<7);
	TIM16->CCMR1 = 0b01101000;
	TIM16->EGR |= 0b11100010;
	TIM16->BDTR |= (1<<15);
	TIM16->CCER = 0x1;
	TIM16->CR1 |= 1;
}
コード例 #3
0
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim)
{
	GPIO_InitTypeDef   GPIO_InitStruct;

	/* Habilita o clock do Timer 3*/
    //__TIM3_CLK_ENABLE();
    __TIM16_CLK_ENABLE();

    /* Habilita o Clock no port C,  função definida em stm32f0xx_hal_rcc.h*/
    __GPIOB_CLK_ENABLE();

    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull = GPIO_PULLUP;
    GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;

    GPIO_InitStruct.Alternate = GPIO_AF2_TIM16;
    //GPIO_InitStruct.Pin = GPIO_PIN_4 | GPIO_PIN_5;
    GPIO_InitStruct.Pin = GPIO_PIN_8;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);


}