Im Falle eines schweren Fehlers im Programm löse ich einen Softwarereset aus. Laut Datenblatt müssen dazu zwei Bits gesetzt werden (siehe unten). Aber irgendetwas stimmt nicht. Der Controller landet in der Endlosschleife - statt das Programm von Anfang an abzuarbeiten. Kennt sich jemand genauer mit dem AT91SAM7S64 aus und kann mir sagen was ich falsch mache? *AT91C_RSTC_RCR = AT91C_RSTC_PROCRST | AT91C_RSTC_PERRST ; while ( 1 ) ;
Hi du hast das Password vergessen! ;-) Schau dir das im Datenblatt oder in den Beispielen von Atmel noch mal an.
1 | //-----------------------------------------------------------------------------
|
2 | /// Resets the processor.
|
3 | //-----------------------------------------------------------------------------
|
4 | void RSTC_ProcessorReset(void) |
5 | {
|
6 | AT91C_BASE_RSTC->RSTC_RCR = AT91C_RSTC_PROCRST | RSTC_KEY_PASSWORD; |
7 | }
|
8 | |
9 | //-----------------------------------------------------------------------------
|
10 | /// Resets the peripherals.
|
11 | //-----------------------------------------------------------------------------
|
12 | void RSTC_PeripheralReset(void) |
13 | {
|
14 | AT91C_BASE_RSTC->RSTC_RCR = AT91C_RSTC_PERRST | RSTC_KEY_PASSWORD; |
15 | }
|
mfg Stephan
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.