added duty parameter to U-V-W pwm functions
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -134,6 +134,12 @@ uint32_t get_torque(adc_oneshot_unit_handle_t adc1_handle)
|
||||
|
||||
return torque;
|
||||
}
|
||||
int32_t get_current_bridge(adc_oneshot_unit_handle_t adc1_handle, int ADC_pin){
|
||||
int32_t adc_voltage = read_voltage(adc1_handle,ADC_pin);
|
||||
ESP_LOGI("CurrentBridge", "ADC:%ld",adc_voltage);
|
||||
int32_t current = ((adc_voltage- 142)/6.77)/0.007;
|
||||
return current;
|
||||
}
|
||||
|
||||
|
||||
SSD1306_t *configure_OLED(const char *TAG)
|
||||
@@ -223,59 +229,59 @@ void pwmStopAll(){
|
||||
}
|
||||
|
||||
|
||||
void U_V_start()
|
||||
void U_V_start(int duty)
|
||||
{
|
||||
//HIN_V und LIN_U abschalten
|
||||
pwmStop(HIN_V_CH);
|
||||
gpio_set_level(CONFIG_LIN_U_GPIO, 0);
|
||||
//HIN_U und LIN_V einschalten
|
||||
pwmStart(HIN_U_CH, 512);
|
||||
pwmStart(HIN_U_CH, duty);
|
||||
gpio_set_level(CONFIG_LIN_V_GPIO, 1);
|
||||
}
|
||||
void V_U_start()
|
||||
void V_U_start(int duty)
|
||||
{
|
||||
//HIN_U und LIN_V abschalten
|
||||
pwmStop(HIN_U_CH);
|
||||
gpio_set_level(CONFIG_LIN_V_GPIO, 0);
|
||||
//HIN_V und LIN_U einschalten
|
||||
pwmStart(HIN_V_CH, 512);
|
||||
pwmStart(HIN_V_CH, duty);
|
||||
gpio_set_level(CONFIG_LIN_U_GPIO, 1);
|
||||
}
|
||||
void U_W_start()
|
||||
void U_W_start(int duty)
|
||||
{
|
||||
//HIN_W und LIN_U abschalten
|
||||
pwmStop(HIN_W_CH);
|
||||
gpio_set_level(CONFIG_LIN_U_GPIO, 0);
|
||||
//HIN_U und LIN_V einschalten
|
||||
pwmStart(HIN_W_CH, 512);
|
||||
pwmStart(HIN_W_CH, duty);
|
||||
gpio_set_level(CONFIG_LIN_V_GPIO, 1);
|
||||
}
|
||||
void W_U_start()
|
||||
void W_U_start(int duty)
|
||||
{
|
||||
//HIN_U und LIN_W abschalten
|
||||
pwmStop(HIN_U_CH);
|
||||
gpio_set_level(CONFIG_LIN_W_GPIO, 0);
|
||||
//HIN_U und LIN_V einschalten
|
||||
pwmStart(HIN_W_CH, 512);
|
||||
pwmStart(HIN_W_CH, duty);
|
||||
gpio_set_level(CONFIG_LIN_U_GPIO, 1);
|
||||
}
|
||||
void V_W_start()
|
||||
void V_W_start(int duty)
|
||||
{
|
||||
//HIN_U und LIN_W abschalten
|
||||
pwmStop(HIN_W_CH);
|
||||
gpio_set_level(CONFIG_LIN_V_GPIO, 0);
|
||||
//HIN_U und LIN_V einschalten
|
||||
pwmStart(HIN_V_CH, 512);
|
||||
pwmStart(HIN_V_CH, duty);
|
||||
gpio_set_level(CONFIG_LIN_W_GPIO, 1);
|
||||
}
|
||||
|
||||
void W_V_start()
|
||||
void W_V_start(int duty)
|
||||
{
|
||||
//HIN_U und LIN_W abschalten
|
||||
pwmStop(HIN_V_CH);
|
||||
gpio_set_level(CONFIG_LIN_W_GPIO, 0);
|
||||
//HIN_U und LIN_V einschalten
|
||||
pwmStart(HIN_W_CH, 512);
|
||||
pwmStart(HIN_W_CH, duty);
|
||||
gpio_set_level(CONFIG_LIN_V_GPIO, 1);
|
||||
}
|
||||
|
||||
|
||||
@@ -28,17 +28,18 @@ uint32_t read_voltage(adc_oneshot_unit_handle_t adc1_handle, int channel);
|
||||
uint32_t get_voltage_in(adc_oneshot_unit_handle_t adc1_handle);
|
||||
uint32_t get_torque(adc_oneshot_unit_handle_t adc1_handle);
|
||||
int32_t get_current_ASC712(adc_oneshot_unit_handle_t adc1_handle, int ADC_pin);
|
||||
int32_t get_current_bridge(adc_oneshot_unit_handle_t adc1_handle, int ADC_pin);
|
||||
void set_PWM_Timer();
|
||||
void set_PWM();
|
||||
void pwmStart(int PWM_CH,int Duty);
|
||||
void pwmStop(int PWM_CH);
|
||||
void pwmStopAll();
|
||||
void U_V_start();
|
||||
void V_U_start();
|
||||
void U_W_start();
|
||||
void W_U_start();
|
||||
void V_W_start();
|
||||
void W_V_start();
|
||||
void U_V_start(int duty);
|
||||
void V_U_start(int duty);
|
||||
void U_W_start(int duty);
|
||||
void W_U_start(int duty);
|
||||
void V_W_start(int duty);
|
||||
void W_V_start(int duty);
|
||||
void parse_3pins(const char *TAG, const char *pin_string, int *pins);
|
||||
SSD1306_t *configure_OLED(const char *TAG);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user