I/O Pin beim LPC2294

#995100
Lesenswert?

Hallo Leute,

ich habe einen LPC2294 und programmiere mit uVersion3 von Keil. Wie man 
einen Ausgang belegt und beschaltet ist kein Problem. Aber wie mache ich 
es bei einem Eingang?
Ich möchte einen Eingang auf den Zustand high in einer if-Anweisung 
abfragen.
Und wie kann ich den diesen Eingang im Debugmodus bei Keil setzen.

MFG
Hotte
Gast #995898
Lesenswert?

@Hotte,

wenn Du weisst wie man die Port als Ausgang programmiert, dann tue genau 
das nicht ;-) Default nach Reset ist Eingang. All die Bits, die gesetzt 
werden in IODIR bleiben eben low (0). Dann ist der Eingang hochohmig. 
Der High-pegel muss somit von aussen getrieben werden und mehr als den 
max. leakage (ich glaub das war 1 uA), treiben koennen.

Hoffe das hilft ein wenig, Robert
Gast #997135
Lesenswert?

Wie kommst du auf PINSEL? Die sind dazu da um zwischen normalem
IO (GPIO) und der übrigen Peripherie (UART, I2C, ...) umzuschalten.

Port 0.14 wird so abgefragt:
1
if (IO0PIN & (1 << 14)) { }

Um den EINT1 (ext. interrupt 1) auszuwählen der sich mit IO Port
0.14 einen gemeinsamen Pin teilt ist folgendes zu tun:
1
PINSEL0 = (PINSEL0 & ~(3 << 28)) | (2 << 28);

Die linke Seite vom OR liefert den aktuellen Wert von PINSEL0 ohne
die Bits 28 u. 29 zurück und die rechte Seite schreibt 0b10 an
diese Stelle.
Wenn man die PINSEL Register nach der Initialisierung nicht mehr
anfaßt reicht auch
1
PINSEL0 |= (2 << 28);
.

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