Forum: Mikrocontroller und Digitale Elektronik PINSELx berechnen(LPC2214)?


von David (Gast)


Lesenswert?

Hallo,

ich verwende einen LPC2214, ich weiß aber leider nicht genau wie ich auf 
den PINSELx Wert komme. Laut Datenblatt, z.B. P0.8 PWM4

PINSEL0 32-Bit

PINSEL0 Pin name Value Function
17:16   P0.8     0 0   GPIO Port 0.8
                 0 1   TxD UART1
                 1 0   PWM4
                 1 1   Reserved

Was sagt 17:16 aus? Das die 16. u. 17. Bit eine 1 ist oder? Wo kommt die 
Value hin? Wie wären die HEX-Werte für GPIO, UART und PWM. Danke

von mthomas (Gast)


Lesenswert?

Hex-Wert ist später mühsam nachvollziehbar. Übersichlier wir des wenn 
die Bitnummern "sichbar" bleiben. In der Art
PINSEL0 = ( PINSEL0 & ~( 3L << 16 ) ) | ( 2L << 16 );
Auf "deutsch": PINSEL0 einlesen, alle Functionsbits des betreffenden 
Pins löschen (hier bit 16 und 17), benötigte Funktionsbits setzen (hier 
bit 17) => Function 10. Lässt sich recht gut in Macro packen

von david (Gast)


Lesenswert?

Danke noch ein anderes Beispiel oder so. Mit Funktion??? und die setzt 
ich wie?

von David (Gast)


Lesenswert?

Bitte um Hilfe, Danke

von mthomas (Gast)


Lesenswert?

Welche Fragen bleiben denn offen? Überhaupt versucht, meinen Vorschlag 
nachzuvollziehen oder so? Den Abschnitt des User-Manuals durchgelesen 
(nicht nur die Tabellen)? Einige Beispielcodes für die Controllerfamilie 
angeschaut oder so? Value ist eine Bitmaske und man muss zum Einstellen 
der Funktion dafür sorgen, dass die genannten Bits in PINSEL diese Maske 
wiederspiegeln.
Da suspend-mode wohl grade aktiv ist, noch ein "no-brainer" - 
hoffentlich:
1
#define VALUE_00 0L /* 0b00 */
2
#define VALUE_01 1L /* 0b01 */
3
#define VALUE_10 2L /* 0b10 */
4
#define VALUE_11 3L /* 0b11 */
5
#define PINFUNCSET( reg_, bit_, value_ ) \
6
reg_ = ( reg_ & ~( 3L << bit_ ) ) | ( value_ << bit_ )
7
8
// Anwendungsbeispiele (lt. Angaben oben)
9
PINFUNCSET( PINSEL0, 16, VALUE_10 ); // PWM
10
PINFUNCSET( PINSEL0, 16, VALUE_00 ); // GPIO
11
PINFUNCSET( PINSEL0, 16, VALUE_10 ); // wieder PWM
12
// uswusf.

von david (Gast)


Lesenswert?

Danke

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.