Hallo allerseits,
ich bin gerade mal wieder am Verzweifeln: Beim Schreiben des Registers
PIO_CODR, (also beim Schalten von Pins auf GND) bekomme ich ein data
abort. Es ist sehr sicher, dass es an diesem Befehl liegt (per debugger
alles durchgegangen):
__inline void AT91F_PIO_ClearOutput(
AT91PS_PIO pPio, // \arg pointer to a PIO controller
unsigned int flag) // \arg output to be cleared
{
pPio->PIO_CODR = flag;
}
Nach dem Auswerten des MC Abort Status Registers ist klar, dass der
abort durch ein WORD write vom PIO ausgelöst wurde.
Das PIO Modul wurde wie folgt initialisiert:
AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, 1 << AT91C_ID_PULLUP);
AT91F_PIO_CfgOutput(AT91C_PIO_PULLUP, AT91C_PULLUP);
AT91C_PIO_PULLUP ist dabei AT91C_BASE_PIOA und
AT91C_PULLUP ist AT91C_PIO_PA16
Jetzt ist meine Frage, durch was alles ein solcher Fehler entstehen
kann? Das kann ja eigentlich nur daran liegen, dass der PIO Controller
nicht richtig konfiguriert ist oder?
Vielen Dank
Alex
PS: Wie formatiert man hier etwas als Code?
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.