hallo möchte einen ext_wakeup machen. den wakeup pin im ulp "an/und ausschalten", ist das möglich? ein beispiel wäre schön, bitte keine erklärungen denke das "wakeup interrupt bit" löschen und setzen ist das einfachste bloß wo ist das, finde da nix, das müßte ja auch im "RTC" sein damit ich es im ULP ändern kann danke
das ist mir klar :), aber ein königreich für ein beispiel rtc_cntl_reg.h #define RTC_CNTL_EXT_XTL_CONF_REG (DR_REG_RTCCNTL_BASE + 0x5c) /* RTC_CNTL_XTL_EXT_CTR_EN : R/W ;bitpos:[31] ;default: 1'b0 ; */ /*description: enable control XTAL by external pads*/ #define RTC_CNTL_XTL_EXT_CTR_EN (BIT(31)) #define RTC_CNTL_XTL_EXT_CTR_EN_M (BIT(31)) #define RTC_CNTL_XTL_EXT_CTR_EN_V 0x1 #define RTC_CNTL_XTL_EXT_CTR_EN_S 31 /* RTC_CNTL_XTL_EXT_CTR_LV : R/W ;bitpos:[30] ;default: 1'b0 ; */ /*description: 0: power down XTAL at high level 1: power down XTAL at low level*/ #define RTC_CNTL_XTL_EXT_CTR_LV (BIT(30)) #define RTC_CNTL_XTL_EXT_CTR_LV_M (BIT(30)) #define RTC_CNTL_XTL_EXT_CTR_LV_V 0x1 #define RTC_CNTL_XTL_EXT_CTR_LV_S 30 #define RTC_CNTL_EXT_WAKEUP_CONF_REG (DR_REG_RTCCNTL_BASE + 0x60) /* RTC_CNTL_EXT_WAKEUP1_LV : R/W ;bitpos:[31] ;default: 1'b0 ; */ /*description: 0: external wakeup at low level 1: external wakeup at high level*/ #define RTC_CNTL_EXT_WAKEUP1_LV (BIT(31)) #define RTC_CNTL_EXT_WAKEUP1_LV_M (BIT(31)) #define RTC_CNTL_EXT_WAKEUP1_LV_V 0x1 #define RTC_CNTL_EXT_WAKEUP1_LV_S 31 /* RTC_CNTL_EXT_WAKEUP0_LV : R/W ;bitpos:[30] ;default: 1'b0 ; */ /*description: 0: external wakeup at low level 1: external wakeup at high level*/ #define RTC_CNTL_EXT_WAKEUP0_LV (BIT(30)) #define RTC_CNTL_EXT_WAKEUP0_LV_M (BIT(30)) #define RTC_CNTL_EXT_WAKEUP0_LV_V 0x1 #define RTC_CNTL_EXT_WAKEUP0_LV_S 30
ich hab eine idee, ich setz es und lese die register aus, manchmal sieht man den wald nicht danke
RTC_CNTL_INT_ST_REG das muß es sein, beispiel würde mich trotzdem intressieren
Schön, dass wir dir helfen konnten :-) Manchmal reicht es, einfach nur zuzuhören.
ich packs nicht... I_WR_REG_BIT(RTC_CNTL_STATE0_REG, RTC_CNTL_ULP_CP_SLP_TIMER_EN_S, 0), den geben die manchmal vor dem wakeup um den ulp zu blockieren, also das der nicht weiter läuft, wäre ja logisch wenn da auch das esp_sleep_enable_ext1_wakeup zu blockieren ist, also in dem register ... aber scheint nicht der fall zu sein also ich such genau das selbe nur für den esp_sleep_enable_ext1_wakeup, tip bitte ein tip
es wird noch bisl abstrusser so kann man seine eigene wakeup funktion definieren // Set the wake stub function esp_set_deep_sleep_wake_stub(&wake_stub); wer hat dich wachgerüttelt rtc_get_reset_reason(0) das komische ist der wechselt im laufenden betrieb den wachrüttler, kann mir da keinen reim drauf machen, alle wakeup laufen über den "esp_set_deep_sleep_wake_stub(&wake_stub);" der wechselt von 5 auf 12 für mich macht das ja sinn woher soll er den wissen was unter ihm war, aber da könnt er ja eine nummer beibehalten, kann auch sein das ich noch ein fehler drin hab für erhellende hinweise stehe ich ihnen gern zur verfügung :) danke
ist eine komische sache, ich hab es gefunden erklären kann ich mir es nur halb der rtc mem ist beim einschalten nicht 0, und ich hab ein ulp wakeup der einen rtc_mem variable als wakeup grund nimmt, wenn ich den einschalte ist dort wahrscheinlich ein undefinierter wert drin, der löst dann sofort den ulp wakeup aus schneller als der hochfahren kann und startet so nicht mit 1 vbat sonder mit 12 software, aber das wakeup aus dem ulp müßte 5 sein !!immer laufendes ulp!! wenn ich das ulp anhalte startet der normal, wird wahrscheinlich auch vom board abhängen ist aber schon komisch, da müßte er ja wissen wo das ulp liegt, ganz hab ich es nicht verstanden
#define RTC_CNTL_SLEEP_EN (BIT(31)) #define RTC_CNTL_SLEEP_EN_S 31 I_WR_REG_BIT(RTC_CNTL_STATE0_REG, RTC_CNTL_ULP_CP_SLP_TIMER_EN,0) I_WR_REG_BIT(RTC_CNTL_STATE0_REG, RTC_CNTL_ULP_CP_SLP_TIMER_EN_S, 0), ich weiß wie es reagiert, aber eine erklärung wäre schön, wann hört die kacke auf, gibts denn nicht jemanden der sich erbarmt !! I_WR_REG_BIT(RTC_CNTL_STATE0_REG, RTC_CNTL_ULP_CP_SLP_TIMER_EN,0) !! funktioniert besser
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.