1. Einführung
The following sections show the pins, parameters, and functions that are supplied by "canonical devices". All HAL device drivers should supply the same pins and parameters, and implement the same behavior.
Note that only the _<io-type>_
and _<specific-name>_
fields are defined for a canonical device. The _<device-name>
, _<device-num>_
, and _<chan-num>_
fields are set based on the characteristics of the real device.
2. Digitaler Eingang
Der kanonische Digitaleingang (E/A-Typfeld: "digin") ist recht einfach.
2.1. Pins
- (bit) in
-
Zustand des Hardware-Eingangs.
- (bit) in-not
-
Invertierter Zustand des Eingangs.
2.2. Parameter
Keine
2.3. Funktionen
- (funct) read
-
Lesen der Hardware und Setzen der HAL-Pins "in" und "in-not".
3. Digitaler Ausgang
Der kanonische digitale Ausgang (engl. output) (E/A-Typfeld: digout
) ist ebenfalls sehr einfach.
3.1. Pins
- (bit) out
-
Wert, der (eventuell invertiert) an den Hardware-Ausgang geschrieben werden soll.
3.2. Parameter(((HAL Digital Output Parameter))
- (bit) invert
-
Wenn TRUE, wird out vor dem Schreiben in die Hardware invertiert.
3.3. Funktionen
- (funct) write
-
Lesen Sie out und invert und stellen Sie die Hardwareausgabe entsprechend ein.
4. Analoger Eingang
The canonical analog input (I/O type: adcin
). This is expected to be used for analog to digital converters, which convert e.g. voltage to a continuous range of values.
4.1. Pins
- (float) Wert
-
Der Hardware-Messwert, skaliert gemäß den Parametern Skala und Offset.
Wert = ((Eingangsmesswert, in hardwareabhängigen Einheiten) * Skala) - Offset
4.2. Parameter
- (Float) Skala (engl. scale)
-
Die Eingangsspannung (oder der Strom) wird mit Skala multipliziert, bevor sie als Wert ausgegeben wird.
- (float) Offset
-
Dieser Wert wird nach Anwendung des Skalenmultiplikators von der Hardware-Eingangsspannung (oder dem Strom) subtrahiert.
- (float) bit_weight
-
Der Wert eines niederwertigen Bits (LSB). Dies ist effektiv die Granularität des Eingangswertes.
- (float) hw_offset
-
The value present on the input when 0 Volts is applied to the input pin(s).
4.3. Funktionen
- (funct) read
-
Read the values of this analog input channel. This may be used for individual channel reads, or it may cause all channels to be read.
5. Analogausgang
The canonical analog output (I/O Type: adcout). This is intended for any kind of hardware that can output a more-or-less continuous range of values. Examples are digital to analog converters or PWM generators.
5.1. Pins
- (float) Wert
-
Der zu schreibende Wert. Der tatsächliche Wert, der an die Hardware ausgegeben wird, hängt von den Parametern Skala und Offset ab.
- (bit) aktivieren (engl. enable)
-
Wenn false, dann wird 0 an die Hardware ausgegeben, unabhängig vom value Pin.
5.2. Parameter(HAL Analog Output-Parameter)
- (float) Offset
-
Dies wird zu dem Wert (engl. value) hinzugefügt, bevor die Hardware aktualisiert wird.
- (Float) Skala (engl. scale)
-
Dies sollte so eingestellt werden, dass eine Eingabe von 1 am value-Pin dazu führt, dass der Analogausgangspin 1 Volt anzeigt.
- (float) high_limit (optional)
-
Wenn bei der Berechnung des an die Hardware auszugebenden Wertes value
offset größer ist als high_limit, wird stattdessen high_limit verwendet. - (float) low_limit (optional)
-
Wenn bei der Berechnung des an die Hardware auszugebenden Wertes value
offset kleiner als low_limit ist, wird stattdessen low_limit verwendet. - (float) bit_weight (optional)
-
Der Wert des niedrigstwertigen Bits (LSB) in Volt (oder mA bei Stromausgängen).
- (float) hw_offset (optional)
-
Die tatsächliche Spannung (oder Stromstärke), die ausgegeben wird, wenn 0 in die Hardware geschrieben wird.
5.3. Funktionen
- (funct) write
-
Dies bewirkt, dass der berechnete Wert an die Hardware ausgegeben wird. Wenn enable false ist, wird 0 ausgegeben, unabhängig von value, scale und offset. Die Bedeutung von "0" ist von der Hardware abhängig. Bei einem bipolaren 12-Bit-A/D kann es z. B. erforderlich sein, 0x1FF (mittlere Skala) an den D/A zu schreiben, um 0 Volt vom Hardware-Pin zu erhalten. Wenn enable true ist, werden Skala, Offset und Wert gelesen und an den ADC ausgegeben (scale (Skala) * value (Wert)) + offset. Wenn enable false ist, dann wird 0 ausgegeben.