www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT91SAM7A3 - Problem


Autor: Ray (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich steige gerade ein, mich mit dem AT91SAM7A3 zu beschäftigen, habe mir 
ein Board selbst geschnitzt und versuche gerade einige Sachen darauf zu 
programmieren.
Jetzt hänge ich, weil ich es einfach nicht schaffe, den Zustand eines 
Pins einzulesen - irgendwie bin ich anscheinend zu blöd.
Ich habe PIOA folgendermaßen initialisiert:

  *AT91C_PIOA_PER = 0x03FC0003;
  *AT91C_PIOA_PDR =~0x03FC0003;

  *AT91C_PIOA_OER= 0x03FC0002;
  *AT91C_PIOA_ODR=~0x03FC0002;

  *AT91C_PIOA_IFER= 0x00000000;
  *AT91C_PIOA_IFDR= 0xFFFFFFFF;

  *AT91C_PIOA_IER= 0x00000000;
  *AT91C_PIOA_IDR= 0xFFFFFFFF;

  *AT91C_PIOA_MDER= 0x00000000;
  *AT91C_PIOA_MDDR= 0xFFFFFFFF;

  *AT91C_PIOA_PUER= 0x00000001;
  *AT91C_PIOA_PUDR= 0xFFFFFFFE;

  *AT91C_PIOA_ASR= 0x0000000C;
  *AT91C_PIOA_BSR= 0x00000000;

  *AT91C_PIOA_OWER= 0x01C00002;
  *AT91C_PIOA_OWDR=~0x01C00002;

  *AT91C_PIOA_SODR= 0x01C00000;
  *AT91C_PIOA_CODR=~0x01C00000;

nun möchte ich den Zustand von Pin 22 = PA0 wissen, bekomme aber mit

a=*AT91C_PIOA_PDSR;

immer null, egal welcher Pegel am Pin anliegt. Was mache ich falsch? Den 
Pin wackeln lassen kann ich, wenn er als Ausgang initialisiert ist, 
UART0 neben dran tut auch, aber als Zustand der I/Os bekomme ich immer 
0.

Danke schon mal

Ray

Autor: EFA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du die Clock für die PIO enabled? Falls nicht, funktionieren 
Interrupt und Einlesen nicht. Nach dem Reset ist die PIO-Clock übrigens 
disabled. Zu finden ist das ganze im Kapitel PMC.

Autor: Ray (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke,

das scheint es gewesen zu sein - auf den Gedanken, dass dem IO-Block der 
Takt fehlen könnte, bin ich gar nicht gekommen - schliesslich 
funktionierte die Ausgabe (Set/Clr) von Pins. Dies benötigt 
offensichtlich keinen Takt.

Danke nochmal

Ray

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.