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.