EBRU
5.3 Programmierung der digitalen Ausgänge
Dieser Abschnitt zeigt die Verwendung der digitalen Ausgangsfunktionen. Es wird der Zugriff
auf einzelne Ausgangskanäle und der gleichzeitige Zugriff auf alle Ausgangskanäle
demonstriert sowie die Verwendung der Watchdog gezeigt.
Beginn
Ausgang setzen
Ist ein Fehler aufgetreten ?
Ausgangsmuster
aller Ausgänge
setzen
Ist ein Fehler aufgetreten ?
Fehlerbehandlung
Watchdog
aktivieren
Hat die Watchdog
zugeschlagen?
Ende
PCIADIO – PCI Karte mit galv. getrennten analogen und digitalen IOs
pciadio-de-um-1v2.doc
...
unsigned char
l_ucActIndex;
unsigned char
l_ucSetOutputState=1;
unsigned int
l_ucNewOutputState;
unsigned char
l_ucChannel;
unsigned char
l_ucWatchdogInterval;
unsigned char
l_ucWatchdogState;
unsigned short l_usAllChannelState;
...
/* Übernehmen der Adresse der zu bedienenden Karte aus den Kartendaten */
l_ucActIndex=l_SummeryBuffer[0].BoardNumber;
/* Setzen eines Ausgangs */
l_bReturn=pciadioDOSetChannelState(l_ucActIndex,l_ucChannel,l_ucSetOutputState); /*
Funktion erfolgreich abgeschlossen ? */
if(l_bReturn==TRUE)
{
l_usAllChannelState=0x5555;
/* Setzen von einer Ausgangsmaske */
l_bReturn=pciadioDOSetState(l_ucActIndex, l_AllChannelState);
if(l_bReturn==TRUE)
{
/* Aktivieren der Watchdog */
if(pciadioSetWatchdogIntervall(l_ucActIndex,0xff) == TRUE)
{
/* Warten dass Watchdog zugeschlagen hat */
do{
pciadioGetWatchdogState(ucActIndex,
}while(l_bWatchdogState == 0);
}
}
}
/* Sind Fehler aufgetreten */
if(l_bReturn == FALSE)
{
/* Fehlertext auslesen */
pciadioGetErrorMsg(l_strErrorTxt);
}
...
Benutzerhandbuch
06.06.2011
Rev. 1.2
/*Aktuell zu bedienende Karte */
/*Status des gesetzten Ausgangs */
/*Status des zuletzt gesetzten Ausgangs */
/*Kanal der verändert werden soll */
/* Zeitinterval für die Watchdog */
/* Status der Watchdog */
/*Kanalmasken */
&l_bWatchdogInterval,
&l_bWatchdogState);
Seite 29 von 75