/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
tidsmåling
Fra : Calle.


Dato : 21-03-03 05:46

Hej

Hvordan måler jeg tiden på en puls i turbo pascal 7.0
Jeg får et firkantet signal, hvor jeg skal måle henholdsvis ON-tiden og
OFF-tiden.
signalet kommer ind på printerporten. Jeg kender godt at læse på porten,
men det med at måle tider er jeg totalt uvidende om, så der må gerne
være et på kommentarer til eksemplerne.


--
Automatik Mekaniker
Calle



 
 
Finn Bindeballe (21-03-2003)
Kommentar
Fra : Finn Bindeballe


Dato : 21-03-03 08:17

hej der.....

hvis du køre DOS er det lige til.... du kan bruge et timer tick, som køre
med 55ms ( 18.2 gg/sec) Denne hastighed kan sættes op, men det betyder at
uret kommer til at gå forkert.

Hvis du køre win, kan du ikke lave den slags triks.....

/finn



Calle. (21-03-2003)
Kommentar
Fra : Calle.


Dato : 21-03-03 13:12

Finn Bindeballe wrote:
> hej der.....
>
> hvis du køre DOS er det lige til.... du kan bruge et timer tick, som
> køre med 55ms ( 18.2 gg/sec) Denne hastighed kan sættes op, men det
> betyder at uret kommer til at gå forkert.
>
Jeg skal køre ren DOS. Hvordan Laver jeg et timer tick, kan du ikke
komme med et eksempel, da jeg er grøn i det.

--
Automatik Mekaniker
Calle



Finn Bindeballe (21-03-2003)
Kommentar
Fra : Finn Bindeballe


Dato : 21-03-03 14:30

hej der ........

her er der en stump som jeg har brugt som udgangspunkt for et eller
andet..........kan ikk elige huske hvad....

haaber at du kan bruge det.....

/Finn

---------------------------------------------------------------------------------

{ $M 8192,0,0}
uses
Crt,dos,graph;

const
TimerClk = 1193180;
Interval = 100; { N›jagtighed - 1/100 af et sekund }

var
a,b,c : word;
aa,bb : word;
r1,r2 : boolean;
ch : char;
Int1CSave : Pointer;
int8save : pointer;
Count : Word;
FastTick : LongInt;
MASTER : Word; { MASTER og TTC benyttes til at f† det normale
ur }
TTC : Word; { til at g†
korrekt. }
ll : longint;
ll1 : longint;
grDriver : Integer;
grMode : Integer;
ErrCode : Integer;


{$F+,S-,W-}
procedure Ti1; interrupt; { interrupt til normal drift }
begin

if a > 600 then begin
if r1 then begin aa:=-random(5); r1:=false; end
else
begin aa:=random(5); r1:=true; end;
end;
if b > 400 then begin
if r2 then begin bb:=-random(5); r2:=false; end
else
begin bb:=random(5); r2:=true; end;
end;



setcolor(0);
circle(a,b,10);
a:=a+aa;
b:=b+bb;
setcolor(4);
circle(a,b,10);

asm
Mov AL,20H
Out 20H,AL
end;

end;

{$F-,S+}


Procedure SetTimer(Count : Word);
Begin
FastTick := 0;
MASTER := Trunc(Interval/(1193180/65536));
TTC := MASTER; { Antal ticks f›r kald af gamle rutine }
Port[$40] := Lo(Count);
Port[$40] := Hi(Count)
End;


procedure init;
begin
Count := TimerClk Div Interval; { Pga. rest bliver intervallet }
GetIntVec($8,Int8Save);
SetIntVec($8,Addr(ti1));
settimer(count);
end;

begin
clrscr;
init;
a:=0;b:=0;
grDriver := Detect;
InitGraph(grDriver, grMode,' ');
ErrCode := GraphResult;
writeln('Starter');

SetIntVec($8,Addr(ti1));
repeat
inc(ll);
until keypressed;

delay(10);
settimer(0);
SetIntVec($8,Int8Save);
clrscr;
end.



Calle. (21-03-2003)
Kommentar
Fra : Calle.


Dato : 21-03-03 14:39

Finn Bindeballe wrote:
> hej der ........
>
> her er der en stump som jeg har brugt som udgangspunkt for et eller
> andet..........kan ikk elige huske hvad....
>
> haaber at du kan bruge det.....
Hej jeg fandt lige dette eksempel, der ser mere overskueligt ud, men
hvordan for jeg det til at køre sålænge et signal en high (on).

Program Timer;

uses CRT;
var
Starttime:longint;
SystemTimer: Longint absolute $0040:$006C;

procedure StartTimer;

begin
Starttime:=SystemTimer;
end;

function TimePassed:real;
begin
Timepassed := (SystemTimer-Starttime)/18.206759747;
end;

begin
clrscr;
StartTimer;
repeat
gotoxy(10,10);
write(TimePassed:15:10);
until keypressed;
end.

--
Automatik Mekaniker
Calle



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

Månedens bedste
Årets bedste
Sidste års bedste