Forum: Mikrocontroller und Digitale Elektronik Atmel ARM: Pin einlesen


von mr.chip (Gast)


Lesenswert?

Hallo

Ich versuche hier verzweifel, einen Pin an meinem AT91SAM7S einzulesen - 
ja, nichts trivialeres :-)

Nun, hier meine Codesequenz zur Initialisierung der Pins:

  // Configure PIO
  outr(PIOA_PER, (1 << VS1002D_DREQ) | (1 << VS1002D_XRESET)); // PIO 
Enable
  outr(PIOA_OER, _BV(VS1002D_XRESET)); // Output Enable
  outr(PIOA_SODR, _BV(VS1002D_XRESET)); // Output Set
  outr(PIOA_PUER, _BV(VS1002D_DREQ)); // Pullup Enable

Dann hier die Einlesesequenz:

int x = inr(PIOA_PDSR)

Was läuft hier schief?

Achja: _BV(X) setzt einfach ein Bit an Stelle X, diese Funktion sollte 
nicht das Problem sein.

Gruss

Michael

von mr.chip (Gast)


Lesenswert?

Achso: PIO Clock vergessen. Kann mir jemand verraten, wo im Datenblatt 
man darüber etwas findet? Nicht beim PIO jedenfalls.

von mr.chip (Gast)


Lesenswert?

Auch dieses Problem ist gelöst. Zuständig ist der PCM, eigentlich muss 
nur folgendes geschrieben werden:

PMC_PCER = (1 << 2);

Wobei '2' die ID des einzuschaltenden Peripherie-Geräts ist, beim PIO = 
2.

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
Noch kein Account? Hier anmelden.