Herunterladen Inhalt Inhalt Diese Seite drucken

EBRU PCIADIO Benutzerhandbuch Seite 28

Inhaltsverzeichnis

Werbung

EBRU
Beginn
Digitaler Eingang
als Interruptquelle
PCI Interrupt
freigeben und
Handler zuweisen
Steht der Zähler auf 100?
PCI-Interrupt
sperren und
Handler löschen
Ist ein Fehler aufgetreten ?
Fehlerbehandlung
Ende
Beginn
Interrupthandler
void Inthandler(void)
Karteninterrupt
{
einlesen
Hat der richtige Kanal einen
Interrupt ?
}
Zähler
inkrementieren
Ende
PCIADIO – PCI Karte mit galv. getrennten analogen und digitalen IOs
pciadio-de-um-1v2.doc
...
unsigned char g_ucIntCounter[16];/* Globaler Zähler für Eingangs IRQ's */
...
unsigned char l_ucActIndex;
boolean l_bReturn;
...
/* Interrupteingang konfigurieren */
l_bReturn = pciadioDISetIrqChannelConfiguration(l_ucActIndex,1,1,1);
if(l_bReturn == TRUE)
{
g_ucIntCounter[0]=0;
/* PCI Interrupt freigeben und Handler übergeben */
l_bReturn= pciadioEnableIrq(l_ucActIndex,&Inthandler);
if(l_bReturn==0)
{
while(g_ucIntCounter[0]<100)
{
Sleep(1);
}
/* Eingangsinterrupt sperren */
l_bReturn = pciadioDISetIrqChannelConfiguration(l_ucActIndex,1,0,1);
if(l_bReturn==FALSE)
{
/* Fehlertext auslesen */
pciadioGetErrorMsg(l_strErrorTxt);
}
/* PCI-Interrupt sperren */
l_bReturn=pciadioDisableIrq(l_ucActIndex);
}
}
/* Ist ein Fehler aufgetreten ? */
if(l_bReturn==FALSE)
{
/* Fehlertext auslesen */
pciadioGetErrorMsg(l_strErrorTxt);
}
unsigned char l_ucActIndex;
PCIADIO_INT_STATE l_Int_State;
...
/* Auslesen des Karteninterrupts */
pciadioGetIrq(l_ucActIndex,& l_Int_State);
...
if((IntState.IRQIO_1_16 & ((unsigned long)0x01<<i))!=0)
{
g_ucIntCounter [i]++;
}
pciadioResetIRQ(ucActIndex);
...
Benutzerhandbuch
06.06.2011
Rev. 1.2
Seite 28 von 75

Werbung

Inhaltsverzeichnis
loading

Verwandte Produkte für EBRU PCIADIO

Inhaltsverzeichnis