Beitrag vom 18.1.2016
Wir wollen nun ein kleines C-Programm schreiben, das unsere LED am GPIO-Pin 11 (physisch) bzw. am wiringPi-Port 0 blinken lässt.
Dazu wollen wir die Entwicklungsumgebung Code::Blocks nutzen.
Die Entwicklungsumgebung Code::Blocks ist viel mehr als nur ein einfacher Texteditor, mit dem man C/C++-Programme schreiben kann. Die Verwaltung komplexer Programmierprojekte wird erheblich vereinfacht und eine Vielzahl von Compilern für die verschiedensten Programmiersprachen lassen sich einbinden.
1. Code::Blocks installieren
Anm.: Die Bibliothek wiringPi sollte bereits installiert sein!
Wir öffnen LXTerminal (Konsole)
Bevor man etwas installiert, wird immer ein Raspbian-Update durchgeführt.
Dazu gibt man in der Konsole (LXTerminal) den Befehl sudo apt-get update ein:
pi@raspberrypi: ~ $ sudo apt update
pi@raspberrypi: ~ $ sudo apt upgrade
Code::Blocks herunterladen und installieren:
pi@raspberrypi: ~ $ sudo apt install codeblocks
Code::Blocks mir Root-Rechten starten (sonst blinkt es später nicht):
pi@raspberrypi: ~ $ sudo codeblocks
Code::Blocks öffnet sich:
Wir wählen File - New -Project:
Wir wählen Console application:
Hier einfach Next klicken:
Als Programmiersprache wählen wir C:
Num müssen wir einen Projekttitel eingeben und einen Projekt-Ordner auswählen oder anlegen:
Hier muss nichts geändert werden, sofern der GNU GCC Compiler sichtbar ist:
Mit einem Klick auf Finish wird ein Projekt-Baum BlinkLED1 angelegt, der bereits eine Datei main.c enthält. Das übliche Hello-World-Programm ist bereits vorbereitet:
Falls bei "Build and Run" die Fehlermeldung 255 erscheint, dann fehlt xterm und muss installiert werden:
pi@raspberrypi: ~ $ sudo apt install xterm
Da wir die Bibliothek wiringPi verwenden wollen, müssen wir noch die Compiler-Optionen bearbeiten:
Unter Other linker options tragen wir ein -lwiringPi:
Nun können wir das Hello-World-Programm in main.c so modifizieren, dass die LED eingeschaltet wird. Zuerst ergänzen wir oben #include wiringPi.h .
Dann schreiben wir innerhalb der geschweiften Klammern wiringPiSetup();
-> Semikolon am Zeilenende nicht vergessen!
Dabei sehen wir bereits, dass uns Code::Blocks bei der richtigen Schreibweise hilft und die korrekten Befehle anbietet:
Tippen Sie die noch fehlenden Zeilen bitte ab und speichern Sie einmal über File - Save file.
Dann klicken Sie bitte auf Build and run:
Die LED an Pin 11 (physisch) des GPIO sollte nun leuchten.
Dafür sorgt der Befehl digitalWrite(0, 1).
Die NULL bedeutet Pin 11 (physisch) nach der Logik der Bibliothek wiringPi.
Die EINS ist eine logische EINS und bedeutet Strom an für die LED.
Die Pinbelegung ist etwas verwirrend. Siehe auch den Abschnitt GPIO programmieren in C (Konsole). Da kann man im Screenshot: GPIO READALL die verschiedenen Bezeichnungen und Nummerierungen der GPIO-Pins vergleichen.
Nun wollen wir aber die LED tatsächlich blinken lassen. Dazu muss der Programmcode folgendermaßen ergänzt werden:
Danach wieder Build and run klicken:
Jetzt sollte die LED sehr schnell insgesamt 100 Mal blinken.
.