GPIO bcm2835 raspberry

Gast #3100738
Lesenswert?
• ▲
▼
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.