added duty parameter to U-V-W pwm functions

This commit is contained in:
2024-11-20 00:41:27 +01:00
parent 8d1e51d4c1
commit 70ffc6af53
6 changed files with 320 additions and 261 deletions

View File

@@ -12,45 +12,49 @@ void app_main(void)
int32_t Current_U = 0;
int32_t Current_V = 0;
int32_t Current_W = 0;
int32_t Current_bridge =0;
int duty = 512;
char display_message[50]; // Puffer für die Nachricht
ESP_LOGI(TAG, "Test");
configure_GPIO_dir(TAG);
adc_oneshot_unit_handle_t adc1_handle = configure_ADC1(TAG);
//SSD1306_t *dev_pt = configure_OLED(TAG);
SSD1306_t *dev_pt = configure_OLED(TAG);
set_PWM_Timer();
set_PWM();
int i =0;
//gpio_set_level(CONFIG_HIN_V_GPIO, 1);
while (1) {
// ssd1306_clear_screen(dev_pt, false);
//ssd1306_clear_screen(dev_pt, false);
// Die Anzeige der OLED mit der richtigen Nachricht
Torque = get_torque(adc1_handle);
Voltage_IN = get_voltage_in(adc1_handle);
Current_U = get_current_ASC712(adc1_handle,CONFIG_I_SENSE_U_ADC);
Current_V = get_current_ASC712(adc1_handle,CONFIG_I_SENSE_U_ADC);
Current_W = get_current_ASC712(adc1_handle,CONFIG_I_SENSE_U_ADC);
Current_bridge = get_current_bridge(adc1_handle, CONFIG_I_SENSE_ADC);
if (Voltage_IN >= 20000){
//ssd1306_display_text(dev_pt, 1, "Bridge=ON", 10, false);
ssd1306_display_text(dev_pt, 1, "Bridge=ON", 10, false);
switch (i)
{
case 0:
V_U_start();
V_U_start(duty);
break;
case 1:
V_W_start();
V_W_start(duty);
break;
case 2:
U_W_start();
U_W_start(duty);
break;
case 3:
U_V_start();
U_V_start(duty);
break;
case 4:
W_V_start();
W_V_start(duty);
break;
case 5:
W_U_start();
W_U_start(duty);
i=0;
break;
@@ -61,25 +65,27 @@ void app_main(void)
}
}else{
//ssd1306_display_text(dev_pt, 1, "Bridge=OFF", 10, false);
ssd1306_display_text(dev_pt, 1, "Bridge=OFF", 10, false);
pwmStopAll();
}
snprintf(display_message, sizeof(display_message), "Torque: %lu", Torque);
// ssd1306_display_text(dev_pt, 2, display_message, 11, false);
ssd1306_display_text(dev_pt, 2, display_message, 11, false);
snprintf(display_message, sizeof(display_message), "Voltage: %lu",Voltage_IN);
// ssd1306_display_text(dev_pt, 4, display_message, strlen(display_message), false);
ssd1306_display_text(dev_pt, 3, display_message, strlen(display_message), false);
snprintf(display_message, sizeof(display_message), "Current: %ldmA",Current_bridge);
ssd1306_display_text(dev_pt, 4, display_message, strlen(display_message), false);
snprintf(display_message, sizeof(display_message), "U: %ldmA",Current_U);
// ssd1306_display_text(dev_pt, 5, display_message, strlen(display_message), false);
ssd1306_display_text(dev_pt, 5, display_message, strlen(display_message), false);
snprintf(display_message, sizeof(display_message), "V: %ldmA",Current_V);
// ssd1306_display_text(dev_pt, 6, display_message, strlen(display_message), false);
ssd1306_display_text(dev_pt, 6, display_message, strlen(display_message), false);
snprintf(display_message, sizeof(display_message), "W: %ldmA",Current_W);
// ssd1306_display_text(dev_pt, 7, display_message, strlen(display_message), false);
ssd1306_display_text(dev_pt, 7, display_message, strlen(display_message), false);
//gpio_set_level(CONFIG_RFE_GPIO,0);
vTaskDelay(500 / portTICK_PERIOD_MS); // Verzögerung für die Task-Schleife