Opóźnienia czasowe



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "Piotr Nabielec" <eloy_at_nospam_go2.pl>
Subject: Opóźnienia czasowe
Date: Tue, 20 May 2003 12:10:17 +0200


Witam,

Problem ten od zawsze pojawia sie, gdy programujemy cos z kompa. Jak dbacie
o wlasciwe zaleznosci czasowe ?!
Musze np. dbac o to, by dane pojawily sie conajmniej 1us przed impulsem
programujacym, zeby jakistam impuls trwal np. 100us.
Chcialbym, zeby to ruszylo na 386SX25 i na Athlonie2100. System : DOS.
Na razie posilkuje sie podaniem szybkosci procesora w kodzie jako stala,
pozniej mozna ja zmienic lub wprowadzic z klawiatury.

W tej chwili robie to tak, iz korzystam z tego, ze komendy asemblerowe

tutaj:
dec ax
jnz tutaj

jedna taka iteracja zajmie miedzy 1, a 2 cykle w najprostszym przypadku. Jak
wykonam ta petle n razy, gdzie n to szybkosc proca w MHz to powinienem
otrzymac opoznienie przynajmniej 1us.
Myslalem jeszcze o przeprogramowaniu zegarka, ale on biedny ma ~1,19MHz.
Niemniej rozdzielczosc parudziesieciu us moznaby sprobowac wyciagnac...
A jak to sie inaczej rozwiazuje ?

Pozdrawiam

Piotrek




========
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: Marek Lewandowski <nospamabuse_at_nospam_poczta.onet.pl>
Subject: =?iso-8859-2?Q?Re:_Op=F3=BCnienia_czasowe?=
Date: Tue, 20 May 2003 22:17:30 +0200


Piotr Nabielec wrote:

Problem ten od zawsze pojawia sie, gdy programujemy cos z kompa. Jak dbacie
o wlasciwe zaleznosci czasowe ?!

wstawiając na zewnątrz jednego, małego ATMELka, z którym gada się po
RS232.

W tej chwili robie to tak, iz korzystam z tego, ze komendy asemblerowe

tutaj:
dec ax
jnz tutaj

jedna taka iteracja zajmie miedzy 1, a 2 cykle w najprostszym przypadku.

plus wypełnienie pipeline, ew. jaja z optymalizacją w najnowszych
prockach (nie wiem, czy nie ma np. rozszerzonej predykcji skoków i dec +
jnz nie zostają wykonane w jednym cyklu...)
Na procesorze nie polegaj.


--
Marek Lewandowski ICQ# 10139051/GG# 154441
locustXpoczta|onet|pl
http://locust.republika.pl
[! Odpowiadaj pod cytatem. Tnij cytaty. Podpisuj posty. !]

========
Path: news-archive.icm.edu.pl!news.icm.edu.pl!mimuw.edu.pl!news.mimuw.edu.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: Greg Sz <greg_sz_at_nospam_dsuper.net>
Subject: Re: =?iso-8859-1?Q?Op=F3=BCnienia?= czasowe
Date: Wed, 21 May 2003 02:08:43 -0400


Piotr Nabielec wrote:

Problem ten od zawsze pojawia sie, gdy programujemy cos z kompa. Jak dbacie
o wlasciwe zaleznosci czasowe ?!
Musze np. dbac o to, by dane pojawily sie conajmniej 1us przed impulsem
programujacym, zeby jakistam impuls trwal np. 100us.
...........W tej chwili robie to tak, .......
tutaj:
dec ax
jnz tutaj

jedna taka iteracja zajmie miedzy 1, a 2 cykle w najprostszym przypadku. Jak
wykonam ta petle n razy, gdzie n to szybkosc proca w MHz to powinienem
otrzymac opoznienie przynajmniej 1us.
Myslalem jeszcze o przeprogramowaniu zegarka, ale on biedny ma ~1,19MHz.
Niemniej rozdzielczosc parudziesieciu us moznaby sprobowac wyciagnac...
A jak to sie inaczej rozwiazuje ?

Wydaje mi sie ze wewnetrzny RTC w PC jest ciagle kompatinilny z MC6818 (tak jak
82C206).
Normalnie nten chip zawiera tajmer ktory sobie mozes zaprogramowac . Nie
analizowalem czy to sie akurat nada ale jak nie to to jeszcze jest "budzik"
ktory generuje przerwanie. Ta czesc RTC nigdy nie byla w DOSie i w PC w ogole
uzywana, jesli sie nie mysle. Moze uda ci sie to uzyc.
Zciagnij sobie najlepiej opis MC6818 albo MC146816 Motoroli bo tam opis jest
jasny i prosty.

Pozdro
grzechu



========
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!szmaragd.futuro.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Piotr Nabielec" <eloy_at_nospam_go2.pl>
Subject: Re: Opoznienia czasowe
Date: Wed, 21 May 2003 08:48:49 +0200


Wydaje mi sie ze wewnetrzny RTC w PC jest ciagle kompatinilny z MC6818
(tak jak
82C206).
Normalnie nten chip zawiera tajmer ktory sobie mozes zaprogramowac .

Z tego, co pamietam, to udawalo sie odpalic go, zeby generowal 1024Hz... nie
wiem czy dobrze pamietam. Ale chyba lepiej w takim wypadku przeprogramowac
PIT0, tam mam timer prawie jak w kontrolerach, okolo 1,19MHz, wiec przy
odrobinie gimnastyki da sie niby ta 1us wyciagnac...

Pozdrawiam

Piotrek



========
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.atman.pl!newsfeed.gazeta.pl!news.internetia.pl!skynet.be!skynet.be!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!sn-xit-03!sn-xit-06!sn-post-02!sn-post-01!supernews.com!corp.supernews.com!not-for-mai