Hallo zusammen, ich habe mir GPIO Lib für raspberry heruntergeladen und erfolgreich einsetzen können. Ich habe einige Funktionen angeschaut und verstehe nicht ganz den Code. Wäre sehr dankbar, wenn jemand mir den erklären könnte. Hier sind die wichtigen Definitionen: #define BCM2835_PERI_BASE 0x20000000 #define BCM2835_GPIO_BASE (BCM2835_PERI_BASE + 0x200000) #define BCM2835_GPFSEL0 0x0000 ///< GPIO Function Select 0 #define BCM2835_GPSET0 0x001c ///< GPIO Pin Output Set 0 #define BCM2835_GPCLR0 0x0028 ///< GPIO Pin Output Clear 0 Funktion Select Function - input/output void bcm2835_gpio_fsel(uint8_t pin, uint8_t mode) { pin = 11, mode = 0b001; // Function selects are 10 pins per 32 bit word, 3 bits per pin volatile uint32_t* paddr = bcm2835_gpio + BCM2835_GPFSEL0/4 + (pin/10); uint8_t shift = (pin % 10) * 3; uint32_t mask = BCM2835_GPIO_FSEL_MASK << shift; uint32_t value = mode << shift; bcm2835_peri_set_bits(paddr, value, mask); } Nun meine Frage, Welchen Sinn macht diese Operation BCM2835_GPFSEL0/4, wenn BCM2835_GPFSEL0 = 0 (0x0000) Wenn ich selber paddr bei pin =11 und mode = 0b001 ausrechne, dann komme ich auf 0x20200001, stimmt das? Danke und Grüße rasp
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.