/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Linux og tid
Fra : Basil


Dato : 19-11-04 21:45

Jeg har en laptimer til en racerbane der har et styreprogram der kører i
DOS.
Grunden til at næste alle laptimere laves til DOS er noget med tidstælleren
i Win32 ikke er fin nok opdelt (1/100 og 1/1000).
Jeg har brug for Win fordi jeg også laver andet med den computer, regneark
og tekst.
Nu slog det mig lige, kan Linux løse dette problem bedre ?
Jeg skal have et styresystem som alle (dummies) kan starte op, klikke på
vores DOS-applikation så den går i fuld skærm og de skal kunne lukke
computernen ned igen (ATX).

Som det er nu kan jeg alt dette, men vores målinger er lidt for ofte ens,
f.eks. får vi alt for ofte en omgangstid på 5,7109 og der er andre tider der
også er jævnlige gengangere.

Kai



 
 
Martin Johansen [600~ (19-11-2004)
Kommentar
Fra : Martin Johansen [600~


Dato : 19-11-04 22:18

Basil skrev:

> tidstælleren i Win32 ikke er fin nok opdelt (1/100 og 1/1000). Jeg har
> brug for Win fordi jeg også laver andet med den computer, regneark og
> tekst.

Det har man da ikke brug for Windows til - Linux klarer den slags opgaver
perfekt.

--
Martin Johansen [6000]
http://tuxx.dk - "Carpe Aptenodytes!"
Registered Linux User # 301406 (http://counter.li.org)
http://www.spreadfirefox.com - Get Firefox!


Basil (19-11-2004)
Kommentar
Fra : Basil


Dato : 19-11-04 22:19

Martin Johansen [6000] wrote:
> Basil skrev:
>
>> tidstælleren i Win32 ikke er fin nok opdelt (1/100 og 1/1000). Jeg har
>> brug for Win fordi jeg også laver andet med den computer, regneark og
>> tekst.
>
> Det har man da ikke brug for Windows til - Linux klarer den slags opgaver
> perfekt.

Jeps, men det er til en forening, hvor der er mange brugere, og alle skal
kunne finde ud af det, så jeg ikke bliver ringet op i tide og utide.
Hvad med DOS-applikationen på Linux ?
Kai



Christian Iversen (19-11-2004)
Kommentar
Fra : Christian Iversen


Dato : 19-11-04 23:21

Basil wrote:

> Martin Johansen [6000] wrote:
>> Basil skrev:
>>
>>> tidstælleren i Win32 ikke er fin nok opdelt (1/100 og 1/1000). Jeg har
>>> brug for Win fordi jeg også laver andet med den computer, regneark og
>>> tekst.
>>
>> Det har man da ikke brug for Windows til - Linux klarer den slags opgaver
>> perfekt.
>
> Jeps, men det er til en forening, hvor der er mange brugere, og alle skal
> kunne finde ud af det, så jeg ikke bliver ringet op i tide og utide.
> Hvad med DOS-applikationen på Linux ?

Det kan man sandsynligvis også. Programmet DosBOX (http://dosbox.sf.net) er
lavet til at køre de gamle DOS-spil, og kan sikkert sagtens trække noget så
simpelt som et tælleprogram. Spørgsmålet er om det er præcist nok. Det kan
man kun finde ud af ved at prøve i praksis.

Man kan få enhver konsulent (mig selv inklusive :) til at sætte en
linux-computer op så den starter programmet automatisk når computeren
tændes. Det var måske løsningen?

--
M.V.H
Christian Iversen

Peter Mogensen (20-11-2004)
Kommentar
Fra : Peter Mogensen


Dato : 20-11-04 00:21

Christian Iversen wrote:
> Basil wrote:
>>Martin Johansen [6000] wrote:
>>>Basil skrev:

>>>>tidstælleren i Win32 ikke er fin nok opdelt (1/100 og 1/1000). Jeg har
>>>>brug for Win fordi jeg også laver andet med den computer, regneark og
>>>>tekst.

Hmmm... Det undrer mig hvis man ikke nu om dage kan time 1/1000 på
Windows. Men det er da muligt at den tæller facilitet som det aktuelle
program bruger ikke er pålidelig nok under andet end DOS.

>>Jeps, men det er til en forening, hvor der er mange brugere, og alle skal
>>kunne finde ud af det, så jeg ikke bliver ringet op i tide og utide.
>>Hvad med DOS-applikationen på Linux ?

Det finder man kun ud af ved at prøve. Men jeg tvivler på at nogen af de
forskellige muligheder, der er for at køre DOS-programmer under Linux,
har speciel bedre mulighed for at understøtte et gammelt timer API fra
DOS, end Windows har... men prøv.

Peter

Martin Johansen [600~ (19-11-2004)
Kommentar
Fra : Martin Johansen [600~


Dato : 19-11-04 23:34

Basil skrev:

> Jeps, men det er til en forening, hvor der er mange brugere, og alle skal
> kunne finde ud af det, så jeg ikke bliver ringet op i tide og utide.

Det bliver du nok uanset hvad. Når det så er sagt så er fx. OpenOffice
lige så nem som MS Office så det får du ikke flere opkald af

Tænk på hvor mange penge den forening kunne spare på licenser!

> Hvad
> med DOS-applikationen på Linux ? Kai

Pas.

--
Martin Johansen [6000]
http://tuxx.dk - "Carpe Aptenodytes!"
Registered Linux User # 301406 (http://counter.li.org)
http://www.spreadfirefox.com - Get Firefox!


Kasper Dupont (21-11-2004)
Kommentar
Fra : Kasper Dupont


Dato : 21-11-04 08:15

Basil wrote:
>
> Hvad med DOS-applikationen på Linux ?

Der er indtil flere muligheder, men det kan give
problemer med timing. Jeg har selv lavet en emulator,
der kan køre DOS under Linux. Men jeg måtte opgive
at få nogle af mine egne DOS spil til at køre med
den rigtige hastighed.

Mange DOS programmer har gjort brug af busy waiting.
Den slags duer bare ikke under et multitasking
system. Kan programmet drives af interrupts vil det
bruge mindre CPU tid, og have større sandsynlighed
for at få CPUen lige netop når det har brug for den.

Om det kan lade sig gøre med interrupts afhænger af
hvilken hardware, der forbinder banen til computeren.

Man kan bruge timer interrupts, så afhænger målingens
præcision af hvor tit, der måles. Under DOS er
timerens frekvens som default ca. 18.2Hz, men den
kan sættes op hvis man udskifter interrupt service
rutinen og roder lidt med hardwaren.

Under Linux er frekvensen 100Hz eller 1000Hz afhængig
af kerne versionen. Men hvis man ikke er bange for
at kompilere sin egen kerne kan den sagtens sættes
op til 10000Hz. Alternativt kan man prøve at bruge
rtc driveren, som uafhængigt af PITen kan time med
en frekvens på op til 8192Hz.

Men hvis dit DOS program er basseret på busywaiting,
så hjælper det ikke ret meget, at Linux har en hurtig
timer. Jeg tror at et native Linux program vil være
en bedre løsning.

Under alle omstændigheder så mener jeg kun timeren
skal bruges til at få din kode afviklet (hvis din
hardware ikke selv kan levere det nødvendige
interrupt), selve tidsmålingen bør foretages med den
TSC, der findes i alle CPUer fra 586 og fremefter.

Men inden jeg giver alt for mange råd, så må du nok
hellere fortælle lidt mere om den hardware du har,
så vi ved, hvilke muligheder der er.

--
Kasper Dupont

Basil (21-11-2004)
Kommentar
Fra : Basil


Dato : 21-11-04 09:01

Kasper Dupont wrote:
> Basil wrote:
>>
>> Hvad med DOS-applikationen på Linux ?
>
> Der er indtil flere muligheder, men det kan give
> problemer med timing. Jeg har selv lavet en emulator,
> der kan køre DOS under Linux. Men jeg måtte opgive
> at få nogle af mine egne DOS spil til at køre med
> den rigtige hastighed.
>
> Mange DOS programmer har gjort brug af busy waiting.
> Den slags duer bare ikke under et multitasking
> system. Kan programmet drives af interrupts vil det
> bruge mindre CPU tid, og have større sandsynlighed
> for at få CPUen lige netop når det har brug for den.
>
> Om det kan lade sig gøre med interrupts afhænger af
> hvilken hardware, der forbinder banen til computeren.
>
> Man kan bruge timer interrupts, så afhænger målingens
> præcision af hvor tit, der måles. Under DOS er
> timerens frekvens som default ca. 18.2Hz, men den
> kan sættes op hvis man udskifter interrupt service
> rutinen og roder lidt med hardwaren.
>
> Under Linux er frekvensen 100Hz eller 1000Hz afhængig
> af kerne versionen. Men hvis man ikke er bange for
> at kompilere sin egen kerne kan den sagtens sættes
> op til 10000Hz. Alternativt kan man prøve at bruge
> rtc driveren, som uafhængigt af PITen kan time med
> en frekvens på op til 8192Hz.
>
> Men hvis dit DOS program er basseret på busywaiting,
> så hjælper det ikke ret meget, at Linux har en hurtig
> timer. Jeg tror at et native Linux program vil være
> en bedre løsning.
>
> Under alle omstændigheder så mener jeg kun timeren
> skal bruges til at få din kode afviklet (hvis din
> hardware ikke selv kan levere det nødvendige
> interrupt), selve tidsmålingen bør foretages med den
> TSC, der findes i alle CPUer fra 586 og fremefter.
>
> Men inden jeg giver alt for mange råd, så må du nok
> hellere fortælle lidt mere om den hardware du har,
> så vi ved, hvilke muligheder der er.

Jeg går lige i tænkeboks, jeg er bange for at det allerede er for
kompliceret for mig.
Selve styrekortet er fra http://www.slotracingtechnology.com/ og virker
håbløst gammedags, men selve programmet har den funktionalitet som vi skal
bruge.
Computeren er en ældre sag, netop for at få ISA porten.
Kai



Peter Mogensen (21-11-2004)
Kommentar
Fra : Peter Mogensen


Dato : 21-11-04 10:54

Basil wrote:
> Jeg går lige i tænkeboks, jeg er bange for at det allerede er for
> kompliceret for mig.
> Selve styrekortet er fra http://www.slotracingtechnology.com/ og virker
> håbløst gammedags, men selve programmet har den funktionalitet som vi skal
> bruge.
> Computeren er en ældre sag, netop for at få ISA porten.

Men hvis det er den eneste opgave maskinen skal løse og den løser det
tilfredsstillende i dag, så er der jo heller ikke nogen grund til at
lave noget om. "If it ain't broke... don't fix it."

Peter

Basil (21-11-2004)
Kommentar
Fra : Basil


Dato : 21-11-04 11:20

Peter Mogensen wrote:
> Basil wrote:
>> Jeg går lige i tænkeboks, jeg er bange for at det allerede er for
>> kompliceret for mig.
>> Selve styrekortet er fra http://www.slotracingtechnology.com/ og virker
>> håbløst gammedags, men selve programmet har den funktionalitet som vi
skal
>> bruge.
>> Computeren er en ældre sag, netop for at få ISA porten.
>
> Men hvis det er den eneste opgave maskinen skal løse og den løser det
> tilfredsstillende i dag, så er der jo heller ikke nogen grund til at
> lave noget om. "If it ain't broke... don't fix it."
>
> Peter

Problemet er 1/100 secs. i Win.
Kai



Kasper Dupont (21-11-2004)
Kommentar
Fra : Kasper Dupont


Dato : 21-11-04 12:23

Basil wrote:
>
> Jeg går lige i tænkeboks, jeg er bange for at det allerede er for
> kompliceret for mig.

Da du sagde "vores DOS-applikation" troede jeg du
mente, at det var noget i selv havde udviklet.

> Selve styrekortet er fra http://www.slotracingtechnology.com/ og virker
> håbløst gammedags, men selve programmet har den funktionalitet som vi skal
> bruge.

Siden fortæller mere om programmet end om hardwaren.
Den eneste relevante oplysning, jeg kunne få øje på
var:

In the qualifying and practice sections,
the program utilizes a microsecond timer
function, which results in extremely
accurate timing 6 digits to the right of
the decimal point. (most programs use the
normal PC timer which has resolution of
55 milliseconds or 2 ½ digit accuracy.)
This process virtually eliminates ties
during qualifying, but should one arise
the program looks at the driver's second
best time to determine the winner.

Men det fremgår ikke, om denne timer er en, der
sidder på kortet, eller en, der allerede findes i
computeren. Men egentlig er begge dele
uhensigtsmæssige løsninger. Det ville være bedre
at kortet bare sendte et interrupt, og man bare
aflæste TSC. Men programmet er tilsyneladende så
gammelt, at det er designet til 386, længe før man
fandt på at udstyre CPUerne med en præcis timer.

Alternativt kunne aflæsningen være lavet i
hardware med en timer på kortet. Så kunne man have
opnået præcision målt i nanosekunder. Men nu er
spørgsmålet nok, hvad der kan lade sig gøre med
den hardware du har.

> Computeren er en ældre sag, netop for at få ISA porten.

Men den kan nu alligevel sagtens være ny nok til at
have en TSC. Jeg mener helt bestemt de tre af
udvidelsesslotsene i min AMD K6/2 maskine er ISA.
Ved du hvilken CPU, der sidder i din maskine?

At der er tale om et ISA kort fortæller mig ikke
ret meget om, hvordan det fungerer. Der er mange
muligheder med et ISA kort, så det kunne sagtens
være lavet til at sende interrupts, men det kunne
også sagtens være basseret på polling og busy
waiting i softwaren.

Jeg havde ikke forestille mig, at man lavede den
slags som ISA kort. Jeg troede det var noget, man
havde koblet på en parallel eller seriel port.

At der er tale om et ISA kort kunne godt risikere
at gøre det noget sværere at bruge den eksisterende
DOS software under en emulator. (Lad os kalde det
en udfordring).

Der er nogle ting, der ville være relevant at
undersøge nu. For det første om der allerede er
nogen, som har prøvet at bruge kortet under Linux.
For det andet om man kan fremskaffe noget bedre
teknisk dokumentation af kort og software. Og
endeligt om programmet overhovedet kan komme i
kontakt med kortet, hvis man kører det i en
emulator under Linux.

--
Kasper Dupont

Thorbjoern Ravn Ande~ (21-11-2004)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 21-11-04 10:25

"Basil" <Kunta@starmail.spam.co.za> writes:

> Hvad med DOS-applikationen på Linux ?

Check dosbox - den skulle være ret effektiv.
--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk - Unix, Java, Web, Netværk, Århus

Niels Dybdahl (22-11-2004)
Kommentar
Fra : Niels Dybdahl


Dato : 22-11-04 10:31

> Jeg har en laptimer til en racerbane der har et styreprogram der kører i
> DOS.
> Grunden til at næste alle laptimere laves til DOS er noget med
tidstælleren
> i Win32 ikke er fin nok opdelt (1/100 og 1/1000).

Det er ikke helt korrekt. Tidsopløsningen i DOS er 55 millisekunder. Man kan
dog speede hardwaretimeren op, men det er ikke helt simpelt, når man
samtidigt skal sørge for at DOSens ur går rigtigt. Det er tvivlsomt om en
speedet hardwaretimer virker i en "DOS-box" eller DOSemulator.
Tidsopløsningen i Win32 er 15-16 millisekunder. Der er vist også en
high-precision timer som kan bruges ned til 1 millisekund, men den har jeg
ingen erfaring med.

> f.eks. får vi alt for ofte en omgangstid på 5,7109 og der er andre tider
der...

Prøv at check om forskellen mellem tiderne er delelige med de 55 ms eller
med de 15-16 ms.

Niels Dybdahl



Svend Olaf Mikkelsen (22-11-2004)
Kommentar
Fra : Svend Olaf Mikkelsen


Dato : 22-11-04 10:47

On Mon, 22 Nov 2004 10:31:28 +0100, "Niels Dybdahl"
<ndy@fjern.detteesko-graphics.com> wrote:

>Det er ikke helt korrekt. Tidsopløsningen i DOS er 55 millisekunder. Man kan
>dog speede hardwaretimeren op, men det er ikke helt simpelt, når man
>samtidigt skal sørge for at DOSens ur går rigtigt. Det er tvivlsomt om en
>speedet hardwaretimer virker i en "DOS-box" eller DOSemulator.
>Tidsopløsningen i Win32 er 15-16 millisekunder. Der er vist også en
>high-precision timer som kan bruges ned til 1 millisekund, men den har jeg
>ingen erfaring med.

Der er en instruktion i nyere CPU'er (Pentium og frem), der tæller
antallet af clock cycler siden CPU'en blev tændt. Jeg ved ikke hvor
nøjagtigt tiden kan måles over længere tid, men det har i hvert fald
høj opløsning. Kan bruges i alle PC operativsystemer.
--
Svend Olaf

Kasper Dupont (22-11-2004)
Kommentar
Fra : Kasper Dupont


Dato : 22-11-04 11:40

Niels Dybdahl wrote:
>
> Det er tvivlsomt om en
> speedet hardwaretimer virker i en "DOS-box" eller DOSemulator.

Jeg har set Windows versioner, der åbner en popupboks
med en advarsel om at programmet ikke nødvendigvis
fungerer rigtigt, hvis det laver sådan numre.

Jeg har ikke nogen idé til, hvordan man kan implementere
det på nogen af de operativsystemer jeg kender.

--
Kasper Dupont

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408930
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste