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
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
Danke noch ein anderes Beispiel oder so. Mit Funktion??? und die setzt ich wie?
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.
|
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.