Example #1
0
int
led_pwm_servo_init_group_map(uint8_t timer_map, uint32_t channel_map) {
    if (timer_map == 0 || channel_map == 0) {
        return -EINVAL;
    }
    
    uint8_t tim_idx = 0;
    while (((timer_map >> tim_idx) & 1) == 0) {
        tim_idx ++;
    }
    
    while (((1 << tim_idx) & timer_map) != 0) {
        io_timer_init_timer(tim_idx);
        tim_idx ++;
    }
    
    /*
    uint8_t ch_idx = 0;
    while ((channel_map & 1) == 0) {
        channel_map >>= 1;
    }

    while (((1 << ch_idx) & channel_map) != 0) {
        led_pwm_channel_init(ch_idx);
        ch_idx ++;
    }
    */
    up_pwm_servo_init(channel_map, 0);

    return OK;

}
Example #2
0
int
led_pwm_servo_init(void)
{
	/* do basic timer initialisation first */
	for (unsigned i = 0; i < arraySize(led_pwm_timers); i++) {
		io_timer_init_timer(i);
	}

	/* now init channels */
	for (unsigned i = 0; i < arraySize(led_pwm_channels); i++) {
		led_pwm_channel_init(i);
	}

	led_pwm_servo_arm(true);
	return OK;
}
int
led_pwm_servo_init(void)
{
	/* do basic timer initialisation first */
	for (unsigned i = 0; i < arraySize(led_pwm_timers); i++) {
#if defined(BOARD_HAS_SHARED_PWM_TIMERS)
		io_timer_init_timer(i);
#else
		led_pwm_timer_init_timer(i);
#endif
	}

	/* now init channels */
	for (unsigned i = 0; i < arraySize(led_pwm_channels); i++) {
		led_pwm_channel_init(i);
	}

	led_pwm_servo_arm(true);
	return OK;
}