2018年12月20日 星期四

DIY - ESP32:ESP32 頻率產生器 Frequency Generator 程式(五十五)

DIY - ESP32:ESP32 頻率產生器 Frequency Generator 程式(五十五):

ESP32 頻率產生器 Frequency Generator 的主要控制是放在程式中,頻率產生器 Frequency Generator 程式可以更改頻率( Frequency)和佔空比( Duty Cycle),是使用 ESP32 IDF 的 API 來實現。

ESP32 頻率產生器 Frequency Generator 製作

ESP32 頻率產生器 Frequency Generator IO 設定:
#define LEDC_OUTPUT_IO     18  // LEDC Output = GPIO 18

void ledc_freq_init(void)
{
    ledc_cal_timer_bit();
   
    // Prepare and then apply the LEDC PWM timer configuration
    ledc_timer.speed_mode       = LEDC_HIGH_SPEED_MODE;
    ledc_timer.timer_num        = LEDC_TIMER_1;
    ledc_timer.duty_resolution  = new_ledc_timer_bit;
    ledc_timer.freq_hz          = new_ledc_frequency;  // set output frequency
    ledc_timer_config(&ledc_timer);

    // Prepare and then apply the LEDC PWM channel configuration
    ledc_channel.speed_mode = LEDC_HIGH_SPEED_MODE;
    ledc_channel.channel    = LEDC_CHANNEL_1;
    ledc_channel.timer_sel  = LEDC_TIMER_1;
    ledc_channel.intr_type  = LEDC_INTR_DISABLE;
    ledc_channel.gpio_num   = LEDC_OUTPUT_IO;     // LEDC GPIO18
    ledc_channel.duty       = new_ledc_dc_value; // set duty
    ledc_channel_config(&ledc_channel);
   
    return;
}

ESP32 頻率產生器 Frequency Generator 主程式:
void app_main()
{
            // UART Information
            printf("BWS ESP-IDF ESP32v029\n");
            printf("FreqGen Menu      r04\n");

            twi_init(21, 22);
            twi_Probe();

           oled_init();
           oled_Scan_Dir(2);
           oled_setFont(F6x8, 6, 8, 0);
            oled_Print(0, 0, "BWS ESP-IDF ESP32v029", 1);
            oled_Print(0, 1, "FreqGen Menu      r04", 1);

    /* Initialize LEDC to generate sample pulse signal */
    rmt_ir_isr_init();

    ledc_freq_init();
    ledc_display_info();  

}

操作系統:Windows 7 64-bit 版本
開發環境:AiThinker05 版本
原程碼: ESP32 ESP-IDF V3.0rc1
程式: DIY-ESP32-029-PCNT_04_FreqGen_Menu-20181209
 
ESP32 頻率產生器 Frequency Generator 運行中
ESP32 頻率產生器 Frequency Generator 電路製作顯示
ESP32 頻率產生器 Frequency Generator 電路製作的設定菜單
ESP32 頻率產生器 Frequency Generator 電路製作的 Frequency 設定菜單
ESP32 頻率產生器 Frequency Generator 電路製作的 Duty Cycle 設定菜單
ESP32 頻率產生器 Frequency Generator 電路製作的 Duty Cycle 設定
ESP32 頻率產生器 Frequency Generator 的頻率 100kHz 和佔空比 50% 輸出
ESP32 頻率產生器 Frequency Generator 的頻率 100kHz 和佔空比 10% 輸出
ESP32 頻率產生器 Frequency Generator 電路製作和遙控器
相關網址:
※ DIY - ESP32:ESP32 LEDC 控制模塊介紹(五十三)
※ DIY - ESP32:ESP32 頻率產生器 Frequency Generator 電路(五十四)
※ DIY - ESP32:ESP32 LEDC 控制 API 函數(五十六)
※ DIY - ESP32:ESP32 LEDC 控制 API 函數結構件及其它(五十七)

2018年 12月 21日 天氣報告
氣溫:22.8@ 22:00
相對濕度:百分之 83%
天氣:大致多雲

沒有留言:

張貼留言