Version [75277]
Dies ist eine alte Version von InitCounter erstellt von FabianEndres am 2017-01-01 20:42:58.
InitCounter
Syntax:
int InitCounter (unsigned char cnum, unsigned char mod, unsigned char numbsys);
Beschreibung:
Die Funktion legt die Betriebsart eines einzelnen Zählers des Timer-Bausteins
8253 fest. Einstellbar ist dabei der Modus und die Zählweise des jeweiligen
Zählers. Erst nach der Initialisierung eines Zählers kann der gewünschte
Startwert, mit Hilfe der Funktion WriteCounter, festgelegt werden. Das Lesebzw. Schreibformat der 16-bit Zähl- bzw. Reload-Register ist unveränderlich
festgelegt. Ein Zugriff beginnt stets mit dem LSB14, direkt, d.h. ohne
zusätzliches Steuerkommando, gefolgt von dem MSB15. Zum Start der Zähler 1
und 2 müssen die Freigaben GATE 1 und GATE 2 über den Parallel-Baustein
(PC1 und PC2) freigeschaltet werden.
Parameter:
cnum | Nummer des Zählers (0, 1, 2) |
mod | Modus (0, 1, 2, 3, 4, 5) (siehe Anhang für Hinweise) |
numbsys | Zählweise (0-Binär, 1-BCD) |
Rückgabewerte
Rückgabe | Bedeutung |
0 | OK |
-1 | ungültige Parameter |
1 | sonstige Fehler |
Beispiel:
// Erzeugen einer Frequenz von 2 Hz mit Hilfe der
// Zähler 0 und 1 des Peripherie-IC`s 8253
if( ! OpenPLXDevice())
{
// Zähler 0 initialisieren
InitCounter(0,3,0);
// Startwert für Zähler 0 setzen
WriteCounter(0,0x0600);
// Zähler 1 initialisieren
InitCounter(1,3,0);
// Startwert für Zähler 1 setzen
WriteCounter(1,0x03E8);
// Parallelbaustein initialisieren
StdInit8255();
// Freigabe G1 durch PC.1 aktivieren
SetBitPortC( 1, 1);
// Handle schließen
ClosePLXDevice();
}else
printf("Fehler");