[font="Sans-serif"]Hallo zusammen![/font]
[font="Sans-serif"]Seit ein paar Tagen habe ich meinen neuen Raspberry Pi 3 (mein erster Raspi).
[/font]
[font="Sans-serif"]Er läuft unter "Raspian Jessie" [/font][font="Sans-serif"]("Generated [/font][font="Sans-serif"]2016-05-27" [/font][font="Sans-serif"]v[/font][font="Sans-serif"]on "https://github.com/RPi-Distro/pi-gen").[/font]
[font="Sans-serif"]Soweit funktioniert auch alles, w[/font][font="Sans-serif"]as ich bisher getestet habe.
[/font]
[font="Sans-serif"]Ich möchte den Raspi in C programmieren (GNU-Tools).[/font]
[font="Sans-serif"]Für den "BoardCom 2837" habe ich im Netz keine Bibliotheken gefunden. Deshalb hab' ich mir die "C library for Broadcom BCM 2835" (v1.5) von "http://www.airspayce.com/mikem/bcm2835" installiert (soll ja auch mit dem BCM2836 des Pi 2 funktionieren).[/font]
[font="Sans-serif"]Unter Examples, auf der gleichen Seite, habe ich die Datei "blink.c" genommen, unwesentlich angepasst (siehe Quellcode) und in "Geany" erfolgreich kompiliert und gelinkt.[/font]
[font="Sans-serif"]Mit "sudo" lässt sich das Programm auch ohne Fehlermeldung starten und es sieht alles danach aus, als ob es in der Endlosschleife (siehe Quellcode) das tut was es soll. Was mir nun noch fehlt zu meinem Glück ist, dass der GPIO11 auch seinen Pegel ändert.
[/font]
[font="Sans-serif"]Um andere Fehlerquellen auszuschließen, habe ich mit den Shell-Kommandos[/font]
[font="Courier New"]echo 11 > /sys/class/gpio/export[/font]
[font="Courier New"]echo out > /sys/class/gpio/gpio11/direction[/font]
[font="Courier New"]echo 1 > /sys/class/gpio/gpio11/value[/font]
[font="Courier New"]echo 0 > /sys/class/gpio/gpio11/value[/font]
[font="Sans-serif"]die Sache getestet.
Hiermit funktioniert es wie es soll – GPIO11 wechselt seinen Pegel zwischen 0 und 3,3 Volt.[/font]
[font="Sans-serif"]Hat jemand eine Idee was hier schiefläuft? Sind der BCM2835 und der BCM2837 womöglich nicht genug kompatibel?[/font]
[font="Calibri, sans-serif"][font="Sans-serif"]Hier mein Quellcode:[/font][/font]
[font="Courier New"]#include <bcm2835.h>
#include <stdio.h>
#define PIN RPI_GPIO_P1_11
int main(int argc, char **argv)
{
if (!bcm2835_init()) {
printf("\nFehler in bcm2835_init()");
return 1;
}
/* Set the pin to be an output
****************************/
bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_OUTP);
while (1) { /* Blink */
bcm2835_gpio_write(PIN, HIGH); // Turn it on
delay(1000); // wait a bit
bcm2835_gpio_write(PIN, LOW); // turn it off
delay(1000); // wait a bit
}
return 0;
}[/font]