Difference between revisions of "ARM Embedded Tutorial - Simple GPIO on and off output/de"

From Free Pascal wiki
Jump to navigationJump to search
Line 24: Line 24:
  
 
Bevor man einen GPIO-Pin auf '''HIGH''' schalten kann, muss man diesen als Ausgang konfigurieren. Dies geht über die Register '''CRL''' und '''CRH'''.
 
Bevor man einen GPIO-Pin auf '''HIGH''' schalten kann, muss man diesen als Ausgang konfigurieren. Dies geht über die Register '''CRL''' und '''CRH'''.
=== Pin-Funktion einstellen ===
+
=== '''IDR''' Pin-Funktion einstellen ===
 
Für die Funktionseinstellung steht pro Pin ein Nibble (4Bit) zu Verfügung.
 
Für die Funktionseinstellung steht pro Pin ein Nibble (4Bit) zu Verfügung.
 
Pin13 an PortC auf Ausgabe. Da '''13''' höher als '''7''' ist, wird dafür das HIGH-Register '''CRH''' verwendet.
 
Pin13 an PortC auf Ausgabe. Da '''13''' höher als '''7''' ist, wird dafür das HIGH-Register '''CRH''' verwendet.

Revision as of 20:56, 13 April 2018

Template:Translate

Einfache GPIO Ein und Aus-gabe

Register für Portzugriff

Für GPIO-Zugriffer, stehen folgende Register zu Verfügung:

  • CRL - Funktions-Register LOW.
  • CRH - Funktions-Register HIGH.
  • IDR - Input Data Register
  • ODR - Output Data Register
  • BSRR - Bit Reset Register
  • BRR - Bit Set Reset Register
  • LCKR - Port Configuration Lock Register


GPIO einschalten

Bevor man man auf die GPIO zugreifen kann, müssen diese eingeschalten werden.
Ohne die ist kein Zugriff möglich ! Dies geschieht folgendermassen für die PortA - PortC.

RCC.APB2ENR := RCC.APB2ENR or (%111 shl 2);

Direkte Portmanipulation

Bevor man einen GPIO-Pin auf HIGH schalten kann, muss man diesen als Ausgang konfigurieren. Dies geht über die Register CRL und CRH.

IDR Pin-Funktion einstellen

Für die Funktionseinstellung steht pro Pin ein Nibble (4Bit) zu Verfügung. Pin13 an PortC auf Ausgabe. Da 13 höher als 7 ist, wird dafür das HIGH-Register CRH verwendet. 13 - 8 = 5; Somit ist es das fünfte Nibble in CHR. Pin0 - Pin7 würde man mit CHL konfigurieren.

PortC.CRH := $00300000;

Siehe auch

Autor: Mathias