PWM-Frequenzänderungsversuch hat komplexe Störung ausgelöst

Liebe NG,
ich habe versucht, die Frquenz des PWM hochzusetzen, um den Pfeifon wegzubekommen. Dazu hatte ich code gefunden, den ich ausprobiert habe:

ICR1 = 11110; //TOP = CPU Freq / Prescaler / gewünschte Frequenz - 1
TCCR1A = _BV(WGM11); // Mode 14
TCCR1B = _BV(WGM12) | _BV(WGM13) | _BV(CS11); //Mode 14, Prescaler = 8
TCNT1 = 0;
TCCR1A |= _BV(COM1A1) //Kanal A nicht-invertierend

Ich habe jetzt eine komplexe Fehlfunktion: serial print gibt meldungen aus, die ich nur mit 115200 baud lesen kann, obwohl ich 9600 programmiert habe. Den Text verstehe ich auch nicht:
rst:0x8 (TG1WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:1344
load:0x40078000,len:13964
load:0x40080400,len:3600
entry 0x400805f0
Diese Zeilen scheinen sich endlos zu wiederholen, egal welchen sketch ich hochlade. Zuletzt war es der Code von AZ-Delivery zum ein- und ausblended einer LED:

#define LEDC_CHANNEL_0 0

#define LEDC_TIMER_13_BIT 13

#define LEDC_BASE_FREQ 5000

#define LED_Pin 2

int brightness = 0;

int fadeAmount = 5;

void ledcAnalogWrite(uint8_t channel, uint32_t value, uint32_t valueMax = 255)

{

uint32_t duty = (8191 / valueMax) * min(value, valueMax);

ledcWrite(channel, duty);

}

void setup() {

Serial.begin(9600);

ledcSetup(LEDC_CHANNEL_0, LEDC_BASE_FREQ, LEDC_TIMER_13_BIT);

ledcAttachPin(LED_Pin, LEDC_CHANNEL_0);

}

void loop() {

Serial.print(brightness);

ledcAnalogWrite(LEDC_CHANNEL_0, brightness);

brightness = brightness + fadeAmount;

if (brightness <= 0 || brightness >= 255) {

fadeAmount = -fadeAmount;

}

delay(30);

}

Vielleicht hab ich auch etwas anderes kaputt gemacht. Vielleicht versteht jemand, was ich gemacht habe, und kann mir raten, wie das rückgängig zu machen ist.
Ich verwende die IDE 2.2.1 auf einem Windows 11 Rechner und den ESP-32 Dev Kit C V4 von AZ- Delivery.
Danke

Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden.
Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.

mfg ein Moderator.

Das ist der Text, der Dir ausgegeben wird, wenn der ESP startet.

Das macht der dauerhaft.
Sieht so aus, als hättest Du den watchdog angeworfen und der beisst jetzt zu.
Also reboot.

Da der rebootet, bekommst Du jetzt vermutlich auch keinen anderen sketch mehr rauf.

Tja....

Neu kaufen ist nicht so toll aus vielen Gründen (Umwelt, dauert bis Freitag...). Gibt es eine Chance? Stromlos machen hat nicht gereicht, die beiden buttons auf dem Board zu drücken auch nicht.
Hilfe!

ich glaub mit dem resetbutton könnte es klappen.
Einen neuen einfachen Sketch raufladen.
Dazu musst Du aber unter DATEI - VOREINSTELLUNGEN - die ausführlichen Ausgaben aktivieren.
Dann siehst Du, wann der Prozess beginnt den Code hochzuladen.

In dem Moment die gedrückte reset-taste loslassen.
Evtl. mehrfach versuchen.
(Ohne Garantie) - so einen Fall hatte ich noch nicht.
Evtl. kann auch @noiasca helfen... Mal sehen.

Das klingt nach AVR Code, nicht nach ESP32.

1 Like

Hallo
Beim ESP kannst du die PWM Frequenz direkt einstellen.
Du solltest die Doku zur passenden core lesen

Danke, habs versucht. Jetzt macht der serial Monitor nur nach Quadrate, egal welche baudrate ich einstelle.
zwei Dinge habe ich recherchiert:
Memory flashen: dann muss ich die Firmware aufspielen, die es bei expressiv aber nicht runterzuladen gibt (zu alt?).
Ein Python-Programm zum resetten: Python kann ich nicht, habs mir runtergeladen, aber das Programm will die Befehle nicht ausführen, weil irgendein "pip" nicht geht, obwohl ich es installiert hab. Das ist zu hoch für mich.

Mich wundert dass das überhaupt kompiliert hat und sich hochladen lies.

Es kann sein, dass meine Versuche mit dem Timer das Problem nicht ausgelöst haben, sondern beide Ereignisse nur zeitlich zusammenfallen.

Hallo,
die Lösung war: ich hab den ersten Teil der Meldung, der schon Brattain aufgefallen ist, gegoogelt. Da hat jemand mit ähnlichem Fehler in den IDE Tools Einstellungen verändert. Ich hab "Erase all flash before sketch upload" enabelt ausgewählt, hochgeladen und es lief.
Danke für die Hilfe!
Euer DH

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.