Difference between revisions of "ARM Embedded Tutorial - Simple GPIO on and off output/de"
From Lazarus wiki
Jump to navigationJump to search (Created page with "{{Translate}} =Einfache GPIO Ein und Aus-gabe= == Register für Portzugriff == Für GPIO-Zugriffer, stehen folgende Register zu Verfügung: * '''CRL''' - Funktions-Register...") |
|||
Line 12: | Line 12: | ||
* '''BRR''' - Bit Set Reset Register | * '''BRR''' - Bit Set Reset Register | ||
* '''LCKR''' - Port Configuration Lock Register | * '''LCKR''' - Port Configuration Lock Register | ||
+ | |||
+ | |||
+ | ==GPIO einschalten== | ||
+ | Bevor man man auf die GPIO zugreifen kann, müssen diese eingeschalten werden. | ||
+ | Dies geschieht folgendermassen für die PortA - PortC. | ||
+ | <syntaxhighlight> | ||
+ | RCC.APB2ENR := RCC.APB2ENR or (%111 shl 2); | ||
+ | </syntaxhighlight> | ||
Line 25: | Line 33: | ||
PortC.CRH := $00300000; | PortC.CRH := $00300000; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
== Siehe auch == | == Siehe auch == |
Revision as of 20:53, 13 April 2018
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. 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.
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
- Übersichtseite ARM Embedded Tutorial/de
Autor: Mathias