Hallo,
ich will bei meinem ESP8266-12E ein PWM ausgeben. Dazu verwende ich folgenden Code:
Ich verwende übrigens das nonos SDK unter Code::Blocks in der Version: esp_iot_sdk_v2.0.0Code:#include "osapi.h" #include "uart.h" #include "pwm.h" #include "user_interface.h" #include "espmissingincludes.h" #define PWM_CHANNELS 1 ICACHE_FLASH_ATTR void my_init_done_cb() { os_printf("done!!\n"); } ICACHE_FLASH_ATTR void user_init() { // Initialize UART uart_init(74880,74880); struct rst_info *rtc_info = system_get_rst_info(); os_printf("reset reason: %x\n", rtc_info->reason); uint32_t period = 5000; // * 200ns ^= 1 kHz uint32 pwm_duty_init[PWM_CHANNELS] = {0, /*10240, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF*/}; // PWM setup uint32 io_info[PWM_CHANNELS][3] = { // MUX, FUNC, PIN {PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO12, 12}, }; // initial duty: all off pwm_init(period, pwm_duty_init, PWM_CHANNELS, io_info); pwm_start(); // Set callback when initialization is done system_init_done_cb(my_init_done_cb); }
Leider bekomme ich kein PWM wie ich es erwartet hätte. Der Pin GPIO12 ist auf 0V. Und das auch nur für ca 8s. Danach scheint sich der ESP zu resetten. Das sieht dann so aus:
Nach dem "done!!" sollte eigentlich keine Ausgabe mehr erfolgen...Code:ets Jan 8 2013,rst cause:1, boot mode:(3,6) load 0x40100000, len 29224, room 16 tail 8 chksum 0xee load 0x3ffe8000, len 900, room 0 tail 4 chksum 0x1b load 0x3ffe8390, len 384, room 4 tail 12 chksum 0x0e csum 0x0e rf cal sector: 1019 rf[112reset reason: 0 mode : sta(ee:ff:bb:00:66:ee) add if0 done!! "@⸮rjrA(⸮⸮S⸮u⸮⸮v⸮X%⸮⸮⸮P⸮juh)⸮8⸮t⸮ͪNH⸮P⸮T⸮1֡u|⸮⸮Q5⸮*M/=⸮n⸮*e"⸮hI⸮A,⸮'⸮y(E,R⸮*⸮)⸮vA,⸮5y*E⸮ n⸮*E⸮HhI⸮A,RZMmr,R⸮*5⸮⸮⸮vA-9⸮y*E⸮ n⸮*M⸮ )i⸮~⸮9bN⸮⸮(⸮vN⸮rf cal sector: 1019 rf[112reset reason: 0 mode : sta(ee:ff:bb:00:66:ee) add if0 done!!
Das sieht irgendwie nach einem WD aus. Aber wieso schlägt der zu?
Hat jemand die PWM mit einem nonos-SDK am laufen?
Welchen DC muss ich eingeben um 100% zu erhalten? (Bei mir ist der Pin immer auf 0V!)
Danke für die Antworten,
drew







Zitieren


Lesezeichen