Moin, gleich vorweg: Die Frage lautet nicht: "Wie kann ich unter Windows auf die parallele Schnittstelle zugreifen", das wurde ja schon mehr als genug behandelt. Ich habe an der parallelen Schnittstelle den "Standard I2C Adaptor" hängen, der auch soweit funktioniert. Daran habe ich eine SmartBattery gehängt. Mit dem Programm "ACCPlus" klappt der Zugriff zuverlässig und wunderbar. Nun habe ich mir selber ein Programm geschrieben (Delphi), welches mittels giveio auf die Schnittstelle zugreift. Dabei treten sehr oft Zugriffsprobleme auf, was vermutlich am Timing liegt, da der SMBus eine Datenrate zwischen 10 kHz und 100 kHz vorschreibt. Weiß jemand wie man das Timing in einer Windowsapplikation halbwegs vernünftig hinbekommt ? Das Timing in meiner Version schwankt sehr stark, was wohl damit zusammenhängt was das Betriebssystem gerade sonst noch so machen möchte. Die Jungs die die oben genannte Software geschrieben haben, haben es aber wohl auch irgendwie hinbekommen, nur wie ? Gruß Ja mann
Es hilft, mit hoher Priorität zu laufen, wobei es immer nur kurz erforderlich sein sollte. Paar Millisekunden abfragen, dann eine Sekunde Pause machen, wieder abfragen...
Man kann die Granularität des Windowsschedulers von den standardmäßigen 10 msec auf 1 msec reduzieren, damit bestehtn die Chancen, daß Dein Programm ein etwas besseres Timingverhalten aufweist. Das geht erstaunlicherweise ohne irgendwelche Devicetreiber oder Kernelmode-Applikationen, sondern kann von praktisch jedem Usermode-Programm durchgeführt werden. Dazu sind die Win32-API-Funktionen timeBeginPeriod und timeEndPeriod vorgesehen. Beide erwarten als Argument die Timergranularität in ganzen msec. Zu Anfang timeBeginPeriod(1); aufrufen, beim Beenden des Programmes timeEndPeriod(1); aufrufen. Fertig! http://msdn.microsoft.com/en-us/library/ms713413(VS.85).aspx
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.