Wie man einen 2,048MHz-Takt an einem beliebigen Pin auf dem ESP32 ausgibt

English Deutsch

Sie können den LEDC-Timer (typischerweise für PWM verwendet) verwenden, um einen 50%-Tastverhältnis-Takt mit 3,3V-P-P-Amplitude an jedem ausgabe-fähigen GPIO-Pin auszugeben.

Zuerst,

ledc_clock_setup.cpp
#include <driver/ledc.h>

dann den Timer einrichten. Sie müssen dies nur einmal beim Start tun, kein Code in Ihrer Loop-Funktion ist erforderlich.

ledc_clock_setup.cpp
/**
 * Setup 2.048MHz clock output on GPIO33
 */
ledc_timer_config_t ledc_timer = {
    .speed_mode = LEDC_HIGH_SPEED_MODE,
    .bit_num    = LEDC_TIMER_2_BIT,
    .timer_num  = LEDC_TIMER_0,
    .freq_hz    = 2048000
};
ledc_channel_config_t ledc_channel = {
    .gpio_num   = GPIO_NUM_33,
    .speed_mode = LEDC_HIGH_SPEED_MODE,
    .channel    = LEDC_CHANNEL_0,
    .timer_sel  = LEDC_TIMER_0,
    .duty       = 2
};
ledc_timer_config(&ledc_timer);
ledc_channel_config(&ledc_channel);

Check out similar posts by category: ESP8266/ESP32