|
Beispielprogramm für OPTOLCA, OPTOLCA/LC
|
Testprogramm für OPTOLCA
| |
/*Bezeichnung:Testprogramm für OPTOLCA ** Beschreibung:Ausgänge: Beschreibung:8-Bit Schreiben auf port+0: Opto Out 1-8 werden gesetzt (Bit 0 - Opto1) Beschreibung:8-Bit Schreiben auf port+1: Opto Out 9-16 werden gesetzt (Bit 0 - Opto9) Beschreibung:16-Bit Schreiben auf port+0: Opto Out 1-16 werden gesetzt (Bit 0 - Opto1)
Beschreibung:Eingänge: Beschreibung:Lesen von port+0: Opto-In 1 = Bit 0; Opto In 2 = Bit 1 ..... Beschreibung:Lesen von port+2: Lesen der Flip-Flop's für die Optokoppler: Beschreibung: Opto-FF für Opto-In 1 = Bit 0 Beschreibung: Flip-Flop's sind im Grundzustand 0 Beschreibung: bei einer steigenden Flanke eines Optokopplers wird das Beschreibung: jeweilige Flip-Flop auf 1 gesetzt
Beschreibung:Rücksetzen eines einzelnen Flip-Flops: Beschreibung:Schreiben der Flip-Flop Nr (von 0-15) auf port+2 (out port+2,kanal) Beschreibung:Schreiben eines beliebigen Wertes auf port+3 (out port+3,0) */
#define port 0x1d0
int i;
main() { char c=0; int j;
i=0; do { out_test(); /*Naechster Ausgang*/ in_test(); /*Eingänge anzeigen*/ if(kbhit()) { c=getch(); if(c=='0') {for(j=0;j!=16;++j) reset_ff(j);c=0;printf("%c",7);} } ++i; if(i>15) i=0; }while(c=='0' || c==0); } /*ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*/ out_test() { outp(port+2,0); /*Offset wieder 0*/ outpw(port,1 << i); /*2 hoch i*/ } /*ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*/ in_test() { int j; printf("OPTO-IN: "); for(j=0;j<16;++j) if(get_in(j)) printf("1 "); else printf("0 "); printf("FF-IN: "); for(j=0;j<16;++j) if(get_in_ff(j)) printf("1 "); else printf("0 ");
printf("\n"); } /*ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*/ /*Holt Wert von OPTO-IN Kanal*/ get_in(int kanal) { return(inpw(port)&(1<<kanal)); } /*ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*/ /*Holt Wert von OPTO-IN FLIP-FLOP eines Kanals*/ get_in_ff(int kanal) { return(inpw(port+2)&(1<<kanal)); } /*ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*/ /*Setzt Flip-Flop von kanal (0-15) zurück)*/ reset_ff(int kanal) { outp(port+2,kanal); outp(port+3,0); } /*ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*/
|
|
|