Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Snabbtimer / interrupt

Postades av 2007-12-18 09:08:10 - Martin Eriksson, i forum operativ/teknik, Tråden har 10 Kommentarer och lästs av 3038 personer

Hej!

Jag har en applikation där jag vill ha ett event med god precision varje 1ms (eller kanske tom lite snabbare). Vad jag vet genererar inte Windows / Visual Basic händelser snabbare än ca 10ms även om du ställer in en timer på en scantid av 1ms, och att precisionen i intervallet mellan dessa event är det lite si och så med.



Går detta att gå runt eller har saker ändrats på Windows nya operativ?

Min applikaion går ut på att läsa av en hårdvaruräknare med jämna snabba intervall.
Jag kör Windows 2000 och VB6.


Några ideer?

Mvh


Svara

Sv: Snabbtimer / interrupt

Postades av 2007-12-18 09:18:06 - Tom Granqvist

Kolla på API-funktionerna QueryPerformanceCounter och QueryPerformanceFrequency


Svara

Sv:Snabbtimer / interrupt

Postades av 2007-12-18 09:35:12 - Martin Eriksson

Tack, det har jag gjort redan och då kan jag räkna ut det "exakta" tidsintervallet mellan två event, men problemet är att få eventen med kortare intervall.


Svara

Sv: Snabbtimer / interrupt

Postades av 2007-12-18 10:00:23 - Martin Adrian

Windows är inget realtidsoperativ så det går inte att få någon precision överhuvudtaget.

Enda möjligheten är hårdvaruavbrott men då måste du skriva en driver.

Kan du inte beskriva vad det är du vill göra?


Svara

Sv:Snabbtimer / interrupt

Postades av 2007-12-18 11:50:41 - Martin Eriksson

Jag har ett datainsamlingskort med två räknare på som räknar pulser från två pulsgivare. Tillhörande driver till kortet stöder tyvärr inte interrupt. Därför vill jag kunna generera min sampeltid med PC'n och läsa av de två räknarn med jämna mellanrum, typ varje 1 ms.

Kortet har en inbyggd klocka som kan generera interrupt om jag förstått kortmanualen rätt, men drivern stöder alltså inte detta.

Kan jag skriva en egen driver som kollar IRQ7, men i övrigt använder jag den medföljande drivern för att läsa av räknarna?

Finns det något generellt program där jag direkt kan se om kortet spottar ur sig interrupt på IRQ7 överhuvud taget?

Mvh


Svara

Sv: Snabbtimer / interrupt

Postades av 2007-12-18 12:41:15 - Martin Adrian

Varför måste du läsa av räknarna så ofta?

Räcker det inte att se hur mycket de har förändrats sen sist och se hur mycket tid som gått?


Svara

Sv:Snabbtimer / interrupt

Postades av 2007-12-18 13:42:41 - Tom Granqvist

Finns det inte nyare drivrutiner tillgängliga? Verkar konstigt att kortet stöder avbrott men drivarna inte...


Svara

Sv: Snabbtimer / interrupt

Postades av 2007-12-19 23:20:20 - Sven Åke Persson

Jag har byggt en .DLL som använder API <b>Private Declare Function GetTickCount& Lib "kernel32" ()</b>
Den räknar med 1 ms noggranhet. Jag använder den på så sätt att jag låter den gå
i en Loop under ex 1 sek. Jag räknar hur många hårdvarupulser det kommit under denna sek
och leverera ett svar varje ~ 1.2 sek . Starta ny mätning och nytt svar. Ungefär så på parallellporten.

Kan det vara något ?


Svara

Sv:Snabbtimer / interrupt

Postades av 2007-12-20 07:15:56 - Tom Granqvist

Sven, är du säker att du får 1 ms noggrannhet? Här är en intressant artikel om upplösningen på olika timers http://support.microsoft.com/kb/172338.


Svara

Sv: Snabbtimer / interrupt

Postades av 2007-12-20 11:31:25 - Sven Åke Persson

Nej det är jag inte därför använder jag räknaren på så sätt att jag låter datorns kapacitet
jobba i en loop under en längre tid(i detta sammanhang) tex 1 sek.

Då får jag låt oss säga 1 000 000 samplingar. Genom att jämföra antal samplingar med i detta fall
1000 +- ev. några ms så blir felet försumbart.

Nackdel är att du får ett resultat som är ~ 1 sek gammalt.

VB timern har 1/18 sek upplösning . DVS om du ställer Timer1.Interval 10 ms
så kommer det ändå bli ~ 56 ms.

Jag har en komponent som du kan få HiTime32.ocx den klarar "1 ms"
Är en kopia av Timer1 men med bättre prestanda.

Men om noggrannhet är det viktigaste så är sampling den bästa metoden.


Svara

Sv:Snabbtimer / interrupt

Postades av 2007-12-25 00:20:39 - Martin Eriksson

Tack alla!

Jag har nu löst problemet. Jag har gått över till C++, där det fanns en del exempel från tillverkaren som tar hand om interruptet från kortet. Det finns alltså stöd för event för C++ men inte för VB i drivrutinen. Antar att man inte behöver exponera alla metoder/event till typlibet från drivern till VB. Det fanns även en ActiveX från tillverkaren som jag drog in i VB, men den stödde inte heller detta speciella interrupt som jag är ute efter (däremot en del andra interrupt).

Jag har ändå fått svar på min fråga och uppgiften kan lösas, om än med andra medel än det från början var tänkt :)

Mvh


Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 586
27 958
271 741
5 923
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies