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