ESP32 MCPWM Funktion

#5915474
Lesenswert?

Hallo Interessierte,

ich verstehe nicht, wie das PWM hier Vorwaerts und Rueckwaerts steuert?

https://github.com/espressif/esp-idf/blob/master/examples/peripherals/mcpwm/mcpwm_brushed_dc_control/main/mcpwm_brushed_dc_control_example.c
1
/**
2
 * @brief motor moves in forward direction, with duty cycle = duty %
3
 */
4
static void brushed_motor_forward(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num , float duty_cycle)
5
{
6
    mcpwm_set_signal_low(mcpwm_num, timer_num, MCPWM_OPR_B);
7
    mcpwm_set_duty(mcpwm_num, timer_num, MCPWM_OPR_A, duty_cycle);
8
    mcpwm_set_duty_type(mcpwm_num, timer_num, MCPWM_OPR_A, MCPWM_DUTY_MODE_0); //call this each time, if operator was previously in low/high state
9
}
10

11
/**
12
 * @brief motor moves in backward direction, with duty cycle = duty %
13
 */
14
static void brushed_motor_backward(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num , float duty_cycle)
15
{
16
    mcpwm_set_signal_low(mcpwm_num, timer_num, MCPWM_OPR_A);
17
    mcpwm_set_duty(mcpwm_num, timer_num, MCPWM_OPR_B, duty_cycle);
18
    mcpwm_set_duty_type(mcpwm_num, timer_num, MCPWM_OPR_B, MCPWM_DUTY_MODE_0);  //call this each time, if operator was previously in low/high state
19
}

Ich habe eine passende H-Bruecke, dass funtioniert 1A, allerdings muss 
ich zwei PINs high/low setzen. Kein Drama und funktioniert super. Aber 
was ist die Idee hinter dem Beispielcode?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren