Forum: Mikrocontroller und Digitale Elektronik GPIO: Wie geht das mit dem Output?


von Horst F. (dmdhl)


Lesenswert?

Hallo,

Ich brauche mal Eure Hilfe bitte. Es geht um ein ganz einfaches 
Beispiel:

Ich arbeite mit einem LPC1343 und möchte gerne einen/mehrere Pins auf 
Output schalten.

nehmen wir an, es ist der GPIO3_0

Als erstes schalte ich den Pullup, Pulldown und die Hysterese aus mit

// IOCON des Ports 3.0
ldr r0,=0x40044084
ldr r1,=0xc0
str r1,[r0]

danach setze ich die Richtung

ldr r0,=0x50038000      //gpio3dir
ldr r1,=0x01            //bit 0 output
str r1,[r0]

danach will ich es anmachen

ldr r0,=0x50033ffc      //gpio3data
ldr r1,=0x01            //bit 0 high
str r1,[r0]

funxt aber nicht. Weiß jemand, was ich verkehrt mache? Irgendwas las ich 
noch von einer Maskierung. Ich finde aber keine Adresse dafür?

Wäre über einen Tip sehr dankbar

von Oliver J. (skriptkiddy)


Lesenswert?

Vielleicht hilft es den Takt für IOCON zu aktivieren.

Gruß Oliver.

von Horst F. (dmdhl)


Lesenswert?

ok, habe jetzt noch folgende Zeilen davor gehängt. Programm sieht nun so 
aus:

// clkout clksel
ldr r0,=0x400480e0
ldr r1,=0x00000003
str r1,[r0]

// jetzt updaten
ldr r0,=0x400480e4
ldr r1,=0x00000001
str r1,[r0]

// IOCON des Ports 3.0
ldr r0,=0x40044084
ldr r1,=0xc0
str r1,[r0]

danach setze ich die Richtung

ldr r0,=0x50038000      //gpio3dir
ldr r1,=0x01            //bit 0 output
str r1,[r0]

hier stürzt er bereits ab und spring zum DEFAULT_ISR_HANDLER 
HardFault_Handler

hat jemand eine Ahnung warum? Bitte, könnte Eure Hilfe gut gebrauchen!

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.