Zrozumienie przeskalowania częstotliwości w programie na Motorolę w assemblerze

Problem matematyczny w uP





Poprzedni Następny
Wiadomość
Spis treści
From: "tomek" <tom1234_at_nospam_ds2.pg.gda.pl>
Subject: Problem matematyczny w uP
Date: Fri, 15 Jun 2001 15:45:28 +0200


Napisałem program w assemblerze (ma motorole) do mierzenia
częstotliwości.Program działą bez zarzutu ale nie za bardzo rozumiem jak
działa jeden blok programu.Cały program wygląda mniej więcej tak :

pomiar okresu ; wykrywam różnice między dwoma zboczami narastającymi,
wynik w 16-bitowym rejestrze
odwracanie okresu 16-bitowego (wszystko hex); wynik ma już charakter
częstotliwości
mnoże przez 32 żeby mi się skala zgadzała ale żeby wynik był dobry muszę go
przeskalować w ten sposób:

(2**20)/(10**6) x freq (1048576/1000000=1.048...)

wynik po pomnożeniu i przerobieniu z hex->dec daje błędy poniżej 0,5% więc
to przeskalowanie daje poprawny wynik.

przeskalowanie to znalazłem w manualu do motoroli ale nie znalazłem
matematycznego wytłumaczenia.Wydaje mi się ze to jest potrzebne po
wykonywaniu odwrotności na liczbach HEX.
Jeśli ktoś wie czemu tak powinno być to niech da znać

Dzięki

Tomek
tom1234_at_nospam_ds2.pg.gda.pl




Poprzedni Następny
Wiadomość
Spis treści
From: "Marek Lewandowski" <locust_at_nospam_priv4.onet.pl>
Subject: Re: Problem matematyczny w uP
Date: Fri, 15 Jun 2001 18:27:13 +0200


Użytkownik "tomek" <tom1234_at_nospam_ds2.pg.gda.pl> napisał w wiadomości
news:9gd3kg$dne$1_at_nospam_sunrise.pg.gda.pl...
Napisałem program w assemblerze (ma motorole) do mierzenia
częstotliwości.Program działą bez zarzutu ale nie za bardzo rozumiem jak
działa jeden blok programu.Cały program wygląda mniej więcej tak :

pomiar okresu ; wykrywam różnice między dwoma zboczami narastającymi,
wynik w 16-bitowym rejestrze
odwracanie okresu 16-bitowego (wszystko hex); wynik ma już charakter
częstotliwości
mnoże przez 32 żeby mi się skala zgadzała ale żeby wynik był dobry muszę
go
przeskalować w ten sposób:

(2**20)/(10**6) x freq (1048576/1000000=1.048...)

Podrzuć listing (jeśli długi, to na maila).
Może coś wymyślę...

--
--
Marek Lewandowski
marek.lewandowski_at_nospam_multicon.pl UIN: 10139051
http://locust.republika.pl
"Linux is like wigwam: No Windows, no Gates, and Apache already inside"