Skip to content

Commit c1f4f9d

Browse files
authored
Merge pull request WiringPi#329 from WiringPi/docu
2 parents 2de08f2 + deb675d commit c1f4f9d

File tree

3 files changed

+798
-7
lines changed

3 files changed

+798
-7
lines changed

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,12 @@ pi@wiringdemo:~ $ gpio readall
8383
```
8484

8585

86+
## Documentation
87+
88+
[German](https://github.com/WiringPi/WiringPi/blob/docu/documentation/deutsch/functions.md)
89+
[English](https://github.com/WiringPi/WiringPi/blob/docu/documentation/english/functions.md)
90+
91+
8692
## Installing
8793

8894
You can either build it yourself or use the prebuilt binaries:

documentation/deutsch/functions.md

Lines changed: 115 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Dokumentation WiringPi-Bibliothek
22

33
Die WiringPi-Bibliothek ermöglicht den Zugriff auf die GPIO-Pins des Raspberry Pi. In dieser Dokumentation finden Sie Informationen zu den verfügbaren Funktionen und deren Verwendung.
4-
Seit Version 3 werden nun auch wieder Erweiterungen an der Schnittstelle vorgenommen. Bei Neuimplementierungen sollte man auf die aktuellen bzw. neunen Funktionen setzen.
4+
Seit Version 3 werden nun auch wieder Erweiterungen an der Schnittstelle vorgenommen. Bei Neuimplementierungen sollte man auf die aktuellen bzw. neuen Funktionen setzen.
55
Das alte [GPIO Sysfs Interface for Userspace](https://www.kernel.org/doc/Documentation/gpio/sysfs.txt) wird nun nicht mehr unterstützt.
66

77
**ACHTUNG:** Diese Dokumemtation ist noch in Arbeit und somit unvollständig.
@@ -11,7 +11,7 @@ Für Schäden materieller oder immaterieller Art, die durch die Nutzung oder Nic
1111
## Installation
1212

1313
Leider steht die WiringPi Library nicht direkt in Raspberry Pi OS zur Verfügung, darum muss sie manuelle installiert weden.
14-
Entweder man lädt sich ein Debian-Paket herunter oder übersetzt es manuell.
14+
Entweder man lädt sich ein Debian-Paket herunter oder erstellt es manuell.
1515

1616
**Debian-Paket erstellen:**
1717

@@ -345,7 +345,7 @@ int main (void) {
345345
346346
### waitForInterrupt
347347
348-
Wartet auf einen Aufruf der Interrupt Service Routine (ISR) mit Timeout.
348+
Wartet auf einen zuvor definierten Interrupt (wiringPiISR) am GPIO Pin. Diese Funktion sollte nicht verwendet werden.
349349
350350
>>>
351351
```C
@@ -452,7 +452,7 @@ Die anderen Schreib- und Lese-Funktionen verwenden das SMBus-Protokoll, das übl
452452
453453
### wiringPiI2CSetup
454454
455-
Öffnet den default I2C-Bus am Raspberry Pi und adressiert das angegebene Gerät / Slave.
455+
Öffnet den default I2C-Bus und adressiert das angegebene Gerät / Slave.
456456
457457
>>>
458458
```C
@@ -496,7 +496,6 @@ int fd = wiringPiI2CSetupInterface("/dev/i2c-1", 0x20);
496496

497497
### wiringPiI2CRawWrite
498498

499-
500499
Schreiben von Daten zu einem I2C-Slave.
501500

502501
>>>
@@ -506,7 +505,7 @@ int wiringPiI2CRawWrite(int fd, const uint8_t *values, uint8_t size)
506505
507506
``fd``: Datei Handle.
508507
``values``: Quellpuffer.
509-
``size``: Anzahl der Bytes die com Quellpuffer geschrieben werden sollen.
508+
``size``: Anzahl der Bytes die vom Quellpuffer geschrieben werden sollen.
510509
``Rückgabewert``: Anzahl der Bytes die geschrieben wurden.
511510
512511
**Beispiel**
@@ -564,4 +563,113 @@ if (fd>0) {
564563

565564
## SPI - Bus
566565

567-
...
566+
Funktionen die mit ``wiringPiSPIx`` beginnen sind neu in der Version 3, mit ihnen kann auch die SPI-Bus Nummer angegeben werden.
567+
Dies ist vorallem nützlich für das Compute Module das über mehere SPI-Busse (0-7) verfügt.
568+
Die alten Funktionen bleiben erhalten beziehen sich allerdings immer auf den SPI Bus 0 der am 40-GPIO Anschluss verfügbar ist.
569+
570+
571+
### wiringPiSPISetup / wiringPiSPISetupMode / wiringPiSPIxSetupMode
572+
573+
Öffnet den angegebenen SPI-Bus.
574+
575+
>>>
576+
```C
577+
int wiringPiSPISetup (int channel, int speed)
578+
int wiringPiSPISetup (int channel, int speed, int mode)
579+
int wiringPiSPIxSetupMode(const int number, const int channel, const int speed, const int mode)
580+
```
581+
582+
``number``: SPI Nummer (typisch 0, bei Compute Modul 0-7).
583+
``channel``: SPI Kanal (typisch 0 oder 1, bei Compute Modul 0-3).
584+
``speed``: SPI Taktrate.
585+
``mode``: SPI Modus (https://www.kernel.org/doc/Documentation/spi/spidev).
586+
``Rückgabewert``: Datei Handle zum SPI-Bus
587+
> -1 ... Fehler bzw. EXIT (Programm Beendigung)
588+
589+
**Beispiel**
590+
>>>
591+
```C
592+
const int spiChannel = 1;
593+
const int spiSpeedInit = 250000; // Hz
594+
int hSPI;
595+
596+
if ((hSPI = wiringPiSPISetup (spiChannel, spiSpeed)) < 0) {
597+
//error
598+
}
599+
600+
//operate SPI
601+
602+
wiringPiSPIClose(spiChannel);
603+
```
604+
605+
### wiringPiSPIDataRW / wiringPiSPIxDataRW
606+
607+
Eine synchrone Schreibe- und Leseoperation am geöffneten SPI Bus wird duchgeführt. Dabei werden die gesendetet Daten von dem empfangenen überschrieben.
608+
609+
>>>
610+
```C
611+
int wiringPiSPIDataRW (int channel, unsigned char *data, int len)
612+
int wiringPiSPIxDataRW (const int number, const int channel, unsigned char *data, const int len)
613+
```
614+
615+
``number``: SPI Nummer (typisch 0, bei Compute Modul 0-7).
616+
``channel``: SPI Kanal (typisch 0 oder 1, bei Compute Modul 0-3).
617+
``data``: Datenpuffer
618+
``len``: Größe von ``data`` Puffer bzw. der Daten.
619+
``Rückgabewert``: Rückgabewert des ``ioctl`` Befehls (https://man7.org/linux/man-pages/man2/ioctl.2.html)
620+
<0 ... Fehler, siehe ``errno`` für Fehlernummer
621+
622+
**Beispiel**
623+
>>>
624+
```C
625+
const int spiChannel = 1;
626+
const int spiSpeedInit = 250000; // Hz
627+
int hSPI;
628+
629+
if ((hSPI = wiringPiSPIxSetupMode (0, spiChannel, spiSpeed, 0)) < 0) {
630+
//error
631+
}
632+
unsigned char spiData[3];
633+
int returnvalue;
634+
635+
spiData[0] = 0b11010000;
636+
spiData[1] = 0;
637+
spiData[2] = 0;
638+
returnvalue = wiringPiSPIxDataRW(0, spiChannel, spiData, 3);
639+
if (returnvalue<=0) {
640+
printf("SPI transfer error: %d\n", errno);
641+
}
642+
643+
wiringPiSPIxClose(0, spiChannel);
644+
```
645+
646+
### wiringPiSPIGetFd / wiringPiSPIxGetFd
647+
648+
Liefert den Datei Handel zum geöffneten SPI-Bus. Um z.B. eigene SPI-Funktion aufrufen zu können.
649+
650+
>>>
651+
```C
652+
int wiringPiSPIGetFd(int channel)
653+
int wiringPiSPIxGetFd(const int number, int channel)
654+
```
655+
656+
``number``: SPI Nummer (typisch 0, bei Compute Modul 0-7).
657+
``channel``: SPI Kanal (typisch 0 oder 1, bei Compute Modul 0-3).
658+
``Rückgabewert``: Datei Handle zum SPI-Bus
659+
> -1 ... Ungültig bzw. nicht geöffnet
660+
661+
**Beispiel**
662+
>>>
663+
```C
664+
const int spiChannel = 1;
665+
const int spiSpeedInit = 250000; // Hz
666+
int hSPI;
667+
668+
if ((hSPI = wiringPiSPISetup (spiChannel, spiSpeed)) < 0) {
669+
//error
670+
}
671+
672+
int fd_spi = wiringPiSPIGetFd(spiChannel);
673+
674+
wiringPiSPIClose(spiChannel);
675+
```

0 commit comments

Comments
 (0)