Forum: Mikrocontroller und Digitale Elektronik ESP32 MCPWM Funktion


von Welle 🧐 S. (w3llschmidt)


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?

: Bearbeitet durch User
von Brain 2.0 (Gast)


Lesenswert?

Das Steuern geschieht sicher über die 3 Anweisungen der einzelnen 
Funktionen, die ja unterschiedlich sind.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.