mikrocontroller.net

Forum: PC-Programmierung Win32 API Timer 20ms


Autor: Marc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo !
Für ein Projekt benötige ich einen Timer mit einer exakten Auflösung von 
20ms. Ich habe ein Windows CE 5.0 Betriebssystem (XScale 320PXA 
Prozessor)

Kennt einer von Euch eine API die mir die Auflösung von 20ms bietet?
Ich habe mit SetTimer() eine zu ungenaue Zeit bzw. die Abweichung ist 
mir zu groß. Kann mir jemand von Euch weiter helfen ?

Mfg Marc

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Irreführender Betreff, meinst Du nicht auch?

Was hat CE auf einem XScale mit Win32 zu tun?

Ansonsten kannst Du mal nachsehen, ob die von mir im Thread 
Beitrag "Harte Echtzeit mit Windows" erwähnten Funktionen zur 
Veränderung der Schedulergranularität auch unter CE existieren.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der multimedia Timer von Windows über timeSetEvent() ist wenns um 
Genauigkeit geht bessere Wahl.
Ist allerdings für CE 'unsupportet'
Vielleicht kannst du aber mit der info  mmtimer, winmm.lib was 
äquivalentes für Windows ce finden, aber wegen der mannigfaltigen 
Zielhardware weiß ich nicht, ob auf ce performance timer unterstützt 
sein werden.
Halt uns mal auf dem Laufenden

Autor: Marc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na gut...dann stellen wir die Frage mal anders rum...

Ich habe ein Windows CE 5.0 Betriebssystem und suche nach einer 
Möglichkeit einen Timer mit einer Auflösung von 20ms zu programmieren. 
Ich muss einen String in einem Takt von 20ms über die serielle 
Schnittstelle senden.

Ist das so etwas verständlicher ?

Mit welchen Möglichkeiten der Programmierung kann ich diesen Timer 
umsetzen?

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habs mal selber in google getippt und auf der msdn Seite steht, daß 
für ce in der Mmtimer.lib eben timeSetEvent() event vorhanden ist.
Der header steht in Mmsystem.h, damit solltest du was finden.

Über die mm Timer ist theoretisch eine 1ms Auflösung des Timers möglich 
und win xp lieferte früher mal bei einem test auch ganz erfreulich 
geringen jitter.

Autor: Wolfgang Mües (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gestatte bitte, dass ich die Sinnfrage stelle.

Dein Kommunikationspartner kann nur alle 20ms ein Zeichen einlesen, und 
wenn die Zeichen schneller hintereinander folgen, dann geht es nicht?

Sowas ist aber sehr ungewöhnlich...

Normalerweise muß man sich nur mit der Sendehardware der V24 
synchronisieren, und das erledigt in der Regel das Betriebssystem schon 
für Dich.

Autor: Marc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo !
Da ich doch eine Win CE 5.0 Echtzeit Betriebssystem habe, muss es doch 
auch möglich sein einen Timer mit einer exakten Zeit zu programmieren, 
oder ?

Mal als Beispiel, wenn ich jede 100ms einen String über die serielle 
Schnittstelle senden will, was für einen Timer muss ich dann nehmen?

Ich muss exakt die Zeit haben, das ist doch unter CE möglich, oder ?

timeSetEvent() ist etwas zu ungenau bzw. die Abweichungen sind zu groß.

Hat jemand ne Idee oder sogar praktische Erfahrung, einen Weblink wie 
ich eine Lösung finde!!??


Besten Dank! Gruss Marco

Autor: Jojo S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
WinCE ist aber nicht gleich WinCE. Für Realtime kann man in den Kernel 
eine ISR einbauen die mit hoher Priorität aufgerufen wird und so einen 
eigenen Scheduler bauen oder feste Aufgaben per ISR erledigen lassen. 
Aber das liegt nicht im Bereich der Anwendungsprogrammierung für CE, da 
braucht schon detailierte Infos zu der Gerätehardware und am Besten noch 
ein 'Board support package'. Wenn das CE in einem PDA steckt bezweifle 
ich das da wirklich Realtime mit möglich ist. Wir benutzen sowas mit X86 
Hardware und da wird ein eigener Scheduler für eine Soft SPS aufgerufen.

Autor: Marc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Johannes..

Alles kein Thema was die Info´s betrifft. Die Hardware kenne ich (kein 
PDA, sondern Marvell XScale PXA 320), das BSP habe ich auch...mit der 
System-Programmierung von CE habe ich schon gute Erfahrungen. Wie 
realisiere ich den eine feste Aufgabe via ISR ? Hast Du ein Software 
Beispiel?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.