mikrocontroller.net

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


Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: mthomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: david (Gast)
Datum:

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

Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bitte um Hilfe, Danke

Autor: mthomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:
#define VALUE_00 0L /* 0b00 */
#define VALUE_01 1L /* 0b01 */
#define VALUE_10 2L /* 0b10 */
#define VALUE_11 3L /* 0b11 */
#define PINFUNCSET( reg_, bit_, value_ ) \
reg_ = ( reg_ & ~( 3L << bit_ ) ) | ( value_ << bit_ )

// Anwendungsbeispiele (lt. Angaben oben)
PINFUNCSET( PINSEL0, 16, VALUE_10 ); // PWM
PINFUNCSET( PINSEL0, 16, VALUE_00 ); // GPIO
PINFUNCSET( PINSEL0, 16, VALUE_10 ); // wieder PWM
// uswusf.

Autor: david (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.