Moin! Ich zweifel solangsam an meiner Intelligenz. Ich versuche auf einem AT91SAM7X256 den Watchdog zu konfigurieren. Ich habe schon verschiedene Wege ausprobiert: AT91C_BASE_WDTC->WDTC_WDMR = AT91F_WDTGetPeriod(1000) | //Watchdog Counter Value (AT91F_WDTGetPeriod(1000) << 16) | //Watchdog Delta Value AT91C_WDTC_WDRSTEN | //A Watchdog fault triggers a Watchdog reset AT91C_WDTC_WDRPROC; //A Watchdog fault activates the processor reset AT91C_BASE_WDTC->WDTC_WDMR = 250 | //Watchdog Counter Value (250 << 16) | //Watchdog Delta Value AT91C_WDTC_WDRSTEN | //A Watchdog fault triggers a Watchdog reset AT91C_WDTC_WDRPROC; //A Watchdog fault activates the processor reset usw. Allerdings startet dann der ARM nicht mehr (oder stürzt sofort ab). Schalte ich den WD aus mit AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS; dann läuft alles los. Reseten tue ich ihn dann mit AT91F_WDTRestart(AT91C_BASE_WDTC); //Restart the Watchdog Timer bzw. AT91C_BASE_WDTC->WDTC_WDCR = 0xA5000001; Was mache ich falsch?
Sry, Codetags vergessen -.-
1 | AT91C_BASE_WDTC->WDTC_WDMR = AT91F_WDTGetPeriod(1000) | //Watchdog Counter Value |
2 | (AT91F_WDTGetPeriod(1000) << 16) | //Watchdog Delta Value |
3 | AT91C_WDTC_WDRSTEN | //A Watchdog fault triggers a Watchdog reset |
4 | AT91C_WDTC_WDRPROC; //A Watchdog fault activates the processor reset |
1 | AT91C_BASE_WDTC->WDTC_WDMR = 250 | //Watchdog Counter Value |
2 | (250 << 16) | //Watchdog Delta Value |
3 | AT91C_WDTC_WDRSTEN | //A Watchdog fault triggers a Watchdog reset |
4 | AT91C_WDTC_WDRPROC; //A Watchdog fault activates the processor reset |
1 | AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS; |
1 | AT91F_WDTRestart(AT91C_BASE_WDTC); //Restart the Watchdog Timer |
1 | AT91C_BASE_WDTC->WDTC_WDCR = 0xA5000001; |
Hab es gelößt. Für den Fall, dass später jemand per Google hier landet: AT91C_WDTC_WDRSTEN und AT91C_WDTC_WDRPROC vertragen sich scheinbar nicht. So funktioniert es nun:
1 | AT91C_BASE_WDTC->WDTC_WDMR = AT91F_WDTGetPeriod(5000) | //Watchdog Counter Value |
2 | (AT91F_WDTGetPeriod(5000) << 16) | //Watchdog Delta Value |
3 | AT91C_WDTC_WDRSTEN; //A Watchdog fault triggers a Watchdog reset |
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.