Laika intervāla mērīšanas no C

R

Ramesh Maharjan

Guest
hardarware līmenis laika intervālu mērīšanas, ko saskarsme
ar paralēlo portu bez ārējās taimeris un oscilatoru

 
Cienījamie Ramesh Maharjan,

Genraly U var mesure laika intervāls, ko Parallel Port Bet vismazākā izmērāmu vienību būs atkarīga datora ātrumu un U izmantos visus resurss PC tikai laika mērījumu,.

Lai to izdarītu (mesure laikā PC w \ o ārējo taimeris) frist pārveidot laika intervālu, lai elektrisko signālu 5 V un 0 V teikt U izteikt begineng laika intervāls, ko kritums malu un galu, ko rada mala.
Otrajā ievades šis signāls par jebkuriem datiem, pin no LPT un skenēšanas kuri mala tad sākt rēķināties pat tp atklāt, kas edg.

Bet U'r PC nevar darīt citas lietas laikā Mesurment.

U var izmantot ārējos taimeris vai Bus Interrupt ISA, lai to paveiktu.

 
Sveiki
u var īstenot programmatūras pulksteni programmu, izmantojot c un u var izmantot, lai novērtētu reālo laiku CPU.Un vienkāršākais veids ir uzrakstīt programmu, kas izmanto kavēšanos pārskatu un aprēķina laiks

 
Jums ir gatava DOS pamatojas programma šā
Jums vajadzētu boot jūsu dos datoru un sākt šo programmu
tas samazina kļūdu mērīšanai

Šeit ir kods
/ * Projekta mesure ātrumu braucoša transportlīdzekļa * /
/ * Izmanto divus statusu osta paralēli pin nē.10 un 11 * /
/ * Lai pinouts Atsauce http://www.ctips.com/spp.html * /
/ * Bāzes adrese paralēlo portu ir 0x378 ar hex * /
/ * Bāzes adrese paralēli ieejas ostā ir 0x379 ar hex * /

# Ietvert <stdio.h>

/ * Conio.h ir nepieciešama clrscr () un gotoxy () * /
# Ietvert <conio.h>

/ * Dos.h ir nepieciešama inportb () un kavēšanos () * /
# Ietvert <dos.h>
# Define PORT 0x379 / * Piešķirt adresi paralēli ostas uz ostu * /
# Define MAX_COUNT 3000par spēkā neesošu galvenais ()
(
/ * Nosaka skaita mainīgo uzglabāt ieskaitīts laika intervāls * /
neparakstīts garš skaits;

/ * Nosaka rādītājs sensoru datus un ievades portu adrese * /
int SENSOR_1, SENSOR_2, datiem;

/ * Piešķir ieejas ostā adresi mainīgo dati * /

Datu = inportb (PORT 1);

/ * Piešķir statusu sensora -1 līdz mainīgā SENSOR_1 * /
SENSOR_1 = (dati & 0x80) / 0x80;
/ * Dati & 0x80 masku binārā vērtība availabe datu ar 0x80 un sadalīšana 0x80 atgriež statusu 11 Pin * /

/ * Piešķir statusu sensora -2 līdz mainīgā SENSOR_2 * /
SENSOR_2 = (dati & 0x40) / 0x40;

bet (! kbhit ()) / * cilpa turpināsies līdz jebkuru taustiņu nospiešanas * /
(
kamēr (*! (SENSOR_1 & SENSOR_2)) / * Skenē vai abi ostas dati, ir viens vai nav /
(;
)
kamēr (SENSOR_1) / * pārbauda, vai sensors-1 datu mainīts uz nulli, vai ne * /
(;
)
par (skaits = 0;; skaits ) / * Grāfu laika intervālu ar 1ms Precision * /
(
kavēšanās (1);

ja (SENSOR_2! = 1 & & skaits == MAX_COUNT) / * Pārbauda, vai sensors-2 datus, ir mainīts uz nulli, vai ne, un apstājas skaits porcess * /
pārtraukuma;

)
clrscr ();
gotoxy (10,20);
printf ("ātruma =% 0,3 ul m / s" 1000/count);
)
)

/ * Beigas programmas, lai aprēķinātu ātrumu braucoša transportlīdzekļa * /

 

Welcome to EDABoard.com

Sponsor

Back
Top