PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hardwarenahe Programmierung mit Timer / Interrupts mit C++ unter Windows



Bamseline
20-10-2005, 13:18
Moin zusammen,

ich habe eine TTL-Ausgabekarte OHNE eigenen, programmierbaren Timer. Ich möchte nun gerne auf einem der Ausgänge eine Frequenz im Bereich von 250-500 Hz ausgeben. Wie mach ich das am besten??

Die mitgelieferten Programmierbeispiele des Herstellers haben die Ausgabe einer Frequenz über Sleep realisiert! Das möchte ich nicht!!

Laut Hersteller soll es möglich sein, das Setzen von High und Low des Ausgangs auch über Interrupts zu steuern. Leider habe ich damit aber noch nichts gemacht, so dass ich in diesem Fall einen Rat zur Implementierung bräuchte.

Derzeit versuche ich mich gerade an der Programmierung mit dem Multimedia Timer - das funktioniert so weit auch ganz gut, allerdings kann ich auch nicht feiner als eine Millisekunde auflösen, so dass beispielsweise Perioden von 5 ms nicht gleichmäßig auf je 2,5 ms für high und low aufgeteilt werden können.
Die hohe Auflösung ist aber notwendig, da ich für eine Frequenz von 500 HZ einen Timerzyklus von 2 ms brauch. Die 2 ms möchte ich auch noch in unterschiedl. Tastverhältnisse aufteilen.

Gibt es einen höher auflösenden Timer? Oder eine ganz andere Methode?
Eine zusätzliche Zählerkarte soll nicht angeschafft werden.

Danke schon mal,
Melina

Bamseline
21-10-2005, 15:17
Weiss den wirklich niemand einen Rat? :(

RapidMax
21-10-2005, 16:29
Doch, vergiss es im User-Space.

Um die Funktion zu realisieren brauchst du ein Device-Driver. Und Windows-Treiber programmieren hat so seine Tücken. Dazu brauchst du erstens mal ein gutes Buch und die entsprechenden Entwicklerwerkzeuge.

Gruss, Andy

Bamseline
24-10-2005, 13:53
... hm, kannst Du denn ein Buch zum Einstieg empfehlen?