DELIB API Referenz > A/D-Wandler Funktionen > DapiSpecialADFilterSet

Navigation:

 

DELIB API Referenz > A/D-Wandler Funktionen >



DapiSpecialADFilterSet

Previous pageReturn to chapter overviewNext page

Erklärung

A/D-Wandler mit höherer Auflösung sind sehr präzise Messinstrumente, die bereits kleinste Änderungen am Messsignal erfassen können. In der Praxis kommt es häufig vor, dass elektrische oder elektromagnetische Störgrößen über die Anschlussleitung auf das Messsignal einwirken und dieses abfälschen. Mit Hilfe eines A/D-Filters lassen sich die Messsignale glätten und optimieren.

Der von uns eingesetzte Filter auf Software-Basis ist bereits im Microcontroller integriert worden, durch den der A/D-Wandler angesteuert wird. Per Softwarebefehl können verschiedene Filterlevel eingestellt und auch zurückgelesen werden.

Das Filterprinzip basiert auf einer Mittelwertbildung aus einer Summe von Messungen. Je höher das Filterlevel gewählt wird, desto mehr Messungen werden zur Mittelwertbildung herangezogen. Bedeutet aber auch, dass sich die Abtastrate des A/D-Wandlers mit steigendem Filterlevel reduziert.

Beschreibung

Mit diesem Befehl lässt sich das A/D-Filterlevel Ihres A/D-Moduls festlegen. Je nach Modul, kann die Höhe des einstellbaren Filterlevels variieren.

Bei einem Modul mit mehreren Submodulen kann das A/D-Filterlevel für jedes Submodul einzeln bestimmt werden.

 

Submodule_fifo

 

Wird als Filterlevel eine 0 übergeben, wird der Filterlevel deaktiviert.

Definition

void DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_AD, cmd, par1, par2);

Parameter

handle=Dies ist das Handle eines geöffneten Moduls.

cmd=DAPI_SPECIAL_AD_FILTER_SET

par1=((filterlevel & 0xff) << 8) | (submodule_nr & 0xff)

filterlevel: gibt an, welches Filterlevel gesetzt werden soll

submodule_nr: gibt an, auf welchem Submodule der Filter gesetzt werden soll. Sollte das Modul keine Submodule besitzen wird der Wert 0xff übergeben

par2 = 0

Return-Wert

Keiner.

Bemerkung

Bei jedem Neustart des Moduls ist der A/D-Filter zunächst ausgeschaltet und kann bei Bedarf aktiviert werden. Es empfiehlt sich daher, den A/D-Filter in der Initialisierung Ihres Projektes festzulegen.

Programmierbeispiel

filterlevel = 10

submodule_nr = 0

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_AD, DAPI_SPECIAL_AD_FILTER_SET, ((filterlevel & 0xff) << 8) | (submodule_nr & 0xff) , 0);

// A/D-Filter des Submoduls 0 wird auf 10 gesetzt

 

filterlevel = 5

submodule_nr = 3

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_AD, DAPI_SPECIAL_AD_FILTER_SET, ((filterlevel & 0xff) << 8) | (submodule_nr & 0xff) , 0);

// A/D-Filter des Submoduls 3 wird auf 5 gesetzt

 

filterlevel = 6

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_AD, DAPI_SPECIAL_AD_FILTER_SET, ((filterlevel & 0xff) << 8) | (0xff & 0xff) , 0);

// A/D-Filter des Hauptmoduls wird auf 6 setzt (nur bei Modulen ohne Submodul)

 

filterlevel = 2

DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_AD, DAPI_SPECIAL_AD_FILTER_SET, ((filterlevel & 0xff) << 8) | (0xff & 0xff) , 0);

// A/D-Filter des Hauptmoduls wird auf 2 setzt (nur bei Modulen ohne Submodul)