Hallo Leute, ich habe ein bissschen das C programmieren für den PC (Windows) unter Code-Blocks mit GCC (MinGW) angefangen. Bisher hatte ich aber nur Mikrocontroller programmiert. Da ist es ja mit den Zeiten recht einfach. Man stellt einen Timer ein, bei dessen Überlauf eine ISR angesprungen wird. Bitte steinigt mich nicht gleich, ich bin programmiertechnischer Laie. Google lieferte zu meinen Suchen nur Infos für µCs, oder C#, oder C++. Aber wie läuft sowas in klassischem C auf dem PC ab? Danke!
Zwei von vielen Möglichkeiten: CreateWaitableTimer() & co. http://msdn.microsoft.com/en-us/library/windows/desktop/ms682492%28v=vs.85%29.aspx Ganz klassische WinAPI: SetTimer()/KillTimer() http://msdn.microsoft.com/en-us/library/windows/desktop/ms644906%28v=vs.85%29.aspx
Gast
#3005157
Mit SetTimer http://msdn.microsoft.com/en-us/library/windows/desktop/ms644906%28v=vs.85%29.aspx Kannst Du deinem Programm gegelmäßig eine Message senden lassen, oder eine Funktion aufrufen lassen, fast wie ein richtiger Interrupt. Aber nur mit 1mS Auflösung. mfG vom ingo
Danke! 1ms dürfte ja für die meisten Sachen am PC reichen. Wenn's was Zeitkritisches ist, werd ich sowieso nen µC nehmen, z.B. zur Abtastung von Messwerten. Der PC darf dann Datenmengen- und rechaufwändige Aufgaben erledigen.
wie wärs mit einem posix-timer? der funktioniert sowohl unter windows als auch unter linux/unix
Gast
#3006765
Dane S. schrieb: > 1ms dürfte ja für die meisten Sachen am PC reichen. Ja, aber auch da bitte nicht drauf verlassen. Da du dir die CPU mit anderen Programmen teilst kann es auch länger dauern bis dein Prozess wieder ausgeführt wird. Der Timer wird nur garantiert nicht vor Ablauf aufgerufen.
Das denke ich mir schon, dass das am PC nicht so schön ist wie am µC, wo die Timer-ISR garantiert alle z.B. 100µs aufgerufen wird. Deshalb ist wohl auch das Timing für die ganzen Selbstbau-CNC-Fräsen ein schwieriges Thema.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.