mstroh76 1 mese fa
parent
commit
ac80b32a5f
1 ha cambiato i file con 35 aggiunte e 55 eliminazioni
  1. +35
    -55
      documentation/deutsch/functions.md

+ 35
- 55
documentation/deutsch/functions.md Vedi File

@@ -34,7 +34,7 @@ sudo apt purge wiringpi
## Pin-Nummerierung und Raspbery Pi Modelle
Pins: https://pinout.xyz/pinout/wiringpi
GPIOs: https://pinout.xyz/pinout/wiringpi
**Raspberry Pi Modelle mit 40-Pin GPIO J8 Header:**
@@ -101,8 +101,7 @@ Pins: https://pinout.xyz/pinout/wiringpi
| | | GND | 25 I 26 | CE1 | 11 | 7 |
**Hinweise**
**Hinweise**
Beachten Sie die abweichende Pin-Nummern und den I2C0 bei Raspberry Pi 1B Rev. 1!
@@ -194,22 +193,21 @@ void pinMode(int pin, int mode)
pinMode(17, OUTPUT);
```
**Support:**
**Support:**
PM_OFF setzt den GPIO zurück (Input) und gibt ihn frei. PWM wird beendet.
Raspberry Pi 5 unterstützt den PWM BAL (Balanced) Modus nicht. Bei PWM_OUTPUT wird der MS Modus aktiviert.
GPIO_CLOCK wird bei Raspberry Pi 5 (RP1) aktuell noch nicht unterstützt.
** PWM Ausgang **
**PWM Ausgang**
PWM_OUTPUT aktiviert den angegeben PWM Ausgang mit den Einstellungen:
- Modus: Balanced (Pi0-4), MS (Pi 5)
- Modus: BAL-Balanced (Pi0-4), MS-Mark/Space (Pi 5)
- Range: 1024
- Clock: 32
- Divider: 32
Um sicher zu stellen, dass der Ausgang ohne aktiver Frequenz startet, sollte man vor der Aktivierung ``pwmWrite(PWM_GPIO, 0);`` ausführen.
Danach können die entsprechenden Clock und Range Werte angepasst werden, ohne das bereits ungewollt eine Frequenz ausgegeben wird.
### pinMode
@@ -281,11 +279,11 @@ if (value==HIGH)
```
## Verwendung ISR
## Interrupts
### wiringPiISR
Registriert eine Interrupt Service Routine (ISR) die bei Flankenwechsel ausgeführt wird.
Registriert eine Interrupt Service Routine (ISR) bzw. Funktion die bei Flankenwechsel ausgeführt wird.
>>>
```C
@@ -293,13 +291,14 @@ int wiringPiISR(int pin, int mode, void (*function)(void));
```
``pin``: Der gewünschte Pin (BCM-, WiringPi- oder Pin-Nummer).
``mode``: Der Widerstand.
> INT_EDGE_RISING ... Steigende Flanke
> INT_EDGE_FALLING ... Fallende Flanke
> INT_EDGE_BOTH ... Steigende und fallende Flanke
> *function .. Funktionspointer für ISR
``mode``: Auslösende Flankenmodus
- INT_EDGE_RISING ... Steigende Flanke
- INT_EDGE_FALLING ... Fallende Flanke
- INT_EDGE_BOTH ... Steigende und fallende Flanke
``*function``: Funktionspointer für ISR
``Rückgabewert``:
> 0 ... Erfolgreich
> 0 ... Erfolgreich
<!-- > <>0 ... Fehler, zur Zeit nicht implementiert -->
Beispiel siehe wiringPiISRStop.
@@ -339,24 +338,6 @@ int main (void) {
}
```
**Beispiel:**
```C
static volatile int edgeCounter;
static void isr(void) {
edgeCounter++;
}
int main (void) {
wiringPiSetupPinType(WPI_PIN_BCM);
edgeCounter = 0;
wiringPiISR (17, INT_EDGE_RISING, &isr);
Sleep(1000);
wiringPiISRStop(17);
printf("%d rinsing edges\n", edgeCounter)
}
```
### waitForInterrupt
@@ -368,16 +349,16 @@ int waitForInterrupt (int pin, int mS)
```
``pin``: Der gewünschte Pin (BCM-, WiringPi- oder Pin-Nummer).
``mS``: Timeout in Milisekunden.
``mS``: Timeout in Milisekunden.
``Rückgabewert``: Fehler
> 0 ... Erfolgreich
> -1 ... GPIO Device Chip nicht erfolgreich geöffnet
> -2 ... ISR wurde nicht registriert (wiringPiISR muss aufgerufen werden)
## PWM (Pulsweitenmodulation)
## Hardware PWM (Pulsweitenmodulation)
Verfügbare pins: https://pinout.xyz/pinout/pwm
Verfügbare GPIOs: https://pinout.xyz/pinout/pwm
### pwmWrite
@@ -393,51 +374,51 @@ pwmWrite(int pin, int value)
### pwmSetRange
Setzt den Bereich für den PWM-Wert. Haupt eine Auswirkung auf die PWM Frequenz.
Gilt für alle PWM Pins und PWM Kanäle.
Setzt den Bereich für den PWM-Wert für alle PWM Pins bzw. PWM Kanäle.
Für die Berechnung der PWM Frequenz (M/S Mode) gilt 19200/divisor/range.
Bei Befehl ``pinMode(pin,PWM_OUTPUT)`` wird automatisch der Wert 1024 für den Teiler gesetzt.
>>>
```C
pwmSetRange (unsigned int range)
```
``pin``: Der gewünschte Pin (BCM-, WiringPi- oder Pin-Nummer).
``range``: PWM Range
### pwmSetMode
Setzt den PWM Modus auf
Setzt den PWM Modus für alle PWM Pins bzw. PWM Kanäle.
>>>
```C
pwmSetMode(int mode);
```
``mode``: Teiler (0-4095)
> PWM_MODE_MS ... Mark/Space Modus (PWM Frequenz fix)
> PWM_MODE_BAL ... Balanced Modus (PWM Frequenz variabel)
``mode``: PWM Modus
- PWM_MODE_MS ... Mark/Space Modus (PWM Frequenz fix)
- PWM_MODE_BAL ... Balanced Modus (PWM Frequenz variabel)
**Support:**
**Support:**
Raspberry Pi 5 unterstützt den Balanced Modus nicht!
### pwmSetClock
Setzt den Teiler für den PWM Basistakt. Der Basistakt ist für alle Raspberry Pis auf 1900 kHz normiert.
Der Raspberry Pi 4 max divisor is 1456,
Setzt den Teiler für den PWM Basistakt. Der Basistakt ist für alle Raspberry Pis auf 1900 kHz normiert.
Für die Berechnung der PWM Frequenz (M/S Mode) gilt 19200/divisor/range.
Bei Befehl ``pinMode(pin,PWM_OUTPUT)`` wird automatisch der Wert 32 für den Teiler gesetzt.
>>>
```C
pwmSetClock(int divisor)
```
``divisor``: Teiler (Raspberry Pi 4: 0-4095, alle anderen 0-4095)
> 0 ... Deaktivert den PWM Takt bei Raspberry Pi 5, bei anderen Pi's wird divisor 1 benutzt
``divisor``: Teiler (Raspberry Pi 4: 1-1456, alle anderen 1-4095)
- 0 ... Deaktivert den PWM Takt bei Raspberry Pi 5, bei anderen Pi's wird divisor 1 benutzt
**Support:**
Der Raspberry Pi 4 hat aufgrund seines höheren internen Basistakt nur einen Einstellbereich von 0-1456.
Ansonsten gilt 1-4095 für einen gültigen Teiler.
**Support:**
Der Raspberry Pi 4 hat aufgrund seines höheren internen Basistakt nur einen Einstellbereich von 1-1456.
Ansonsten gilt 0-4095 für einen gültigen Teiler.
**Beispiel:**
@@ -453,7 +434,6 @@ int main (void) {
double freq = 19200.0/(double)pwmc/(double)pwmr;
printf("PWM 50%% @ %g kHz", freq);
delay(250);
pinMode(18, PM_OFF);
}
```
```

Caricamento…
Annulla
Salva