Taster an AT91SAM7

OP #591038
Lesenswert?
• ▲
▼
Hallo NG,

wie kann ich denn eine der beiden Taste auf meinem AT91SAM7256 abfragen?

bis jetzt versuche ich:

  ldr r0, =0xFFFFF400

taste  ldr  r1, [r0, #0x08]
  and   r1, r1, #10000000000000000000b
  cmp  r1, #10000000000000000000b
  bne  taste

Leider tut sich nichts. Es sollte halt eine der beiden Tasten (an PA19 
oder PA20) abgefragt werden...

Verständnisfrage: Sind automatisch alle PINS, die nicht über 0xFFFFF410 
auf Ausgang gesetzt sind, auf Input? Wenn nicht -> wie kann man denn 
dann PINS für die Eingabe konfigurieren?

Vielen Dank für jeden Hinweis!
Peter
OP #591076
Lesenswert?
• ▲
▼
> Warum benutzt du keinen Compiler?

Ich weiß nicht, ich mache so viel den ganzen Tag mit irgendwelchen 
Hochsprachen. Irgendwie vergisst man bei all den GHz was da eigentlich 
für eine Leistung dahinter steckt. Auf dem ARM möchte ich mich halt ein 
bischen abreagieren. Ausgabe klappt jetzt schon ganz gut.

Ein kleines Beispiel für das Warten auf einen Tastendruck würde mich 
sehr freuen.

Grüße,
Peter
OP #591171
Lesenswert?
• ▲
▼
Jetzt habe ich im Manual gesehen, dass ich wahrscheinlich an der 
falschen Stelle nach Änderungen an den Pins suche. Gefunden habe ich:

0x003C Pin Data Status Register(3) PIO_PDSR Read-only

aber funktionieren tuts trotzdem nicht. Kann mir jemand sagen, was ich 
falsch mache?

  ldr r0, =0xFFFFF400

taste  ldr  r1, [r0, #0x3c]
  and   r1, r1, #10000000000000000000b
  cmp  r1, #10000000000000000000b
  bne  taste
Gast #591186
Lesenswert?
• ▲
▼
Hallo Peter,

hast du daran gedacht, dem PIO den Takt zuzuführen?
Ich weiß das Register nicht aus dem Kopf, aber dort kannst du den Takt 
für den PIO (USB, etc.) freischalten.

Nach einem Reset ist das Bit 0 -> kein Takt.


Gruß,
Greg.
Gast #591388
Lesenswert?
• ▲
▼
>hast du daran gedacht, dem PIO den Takt zuzuführen?
>Ich weiß das Register nicht aus dem Kopf, aber dort kannst du den Takt
>für den PIO (USB, etc.) freischalten.

>Nach einem Reset ist das Bit 0 -> kein Takt.

Für was ist der Takt genau notwendig?
Benötigt man den Takt nur für Input?
Gilt der Takt für alle Pins, oder kann man das festlegen?

...Weil dia Ausgabe auf meine LEDs funktioniert ja bereits...

Danke!
OP #591809
Lesenswert?
• ▲
▼
Hallo NG,

jetzt habe ich wieder mal alles mögliche probiert. Aber leider klappt es 
immer noch nicht.

Im Manual-PDF (AT91 ARM Thumb-based Microcontrollers) habe ich auf
Seite 81 (Kap 15.5) genau das gefunden, was ich machen will. Kann mir 
mal bitte jemand verraten, wie ich die Beispiele oben mit der Tabelle 
darunter in Verbindung sehen darf? Ich denke, dann könnte ich wieder ein 
paar Schritte weiterkommen...

Vielen Dank!
Peter
OP #591887
Lesenswert?
• ▲
▼
@Matthias

hey, das ist ja total GENIAL! Die Taste tuts! Habe am Anfang noch:

  ldr r0, =0xFFFFFC00

  ldr r1, =0xFFFFFFFF
  str r1, [r0, #0x10]

hinzugefügt. Und das klappt! VIELEN DANK!

Eine Frage hätte ich aber noch: wenn 0xFFFFFFFF in 0xFFFFFC00 nicht so 
optimal ist - was wäre denn dann Optimal?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren