DEXTER
Guest
Sun Sep 30, 2007 7:47 pm
Hej.
Kolejnym moim wyzwaniem jest budowa obrotościomierza cyfrowego do samochodu
na '51. Chciałbym pod Waszą ocenę poddać moje rozumowanie.
Impulsy będę zliczał z cewki zapłonowej, gdzie pojwiają mi się zera. Pomijam
kwestię uformowania inpulsów do TTLa oraz fakt, że wynik muszę dzielić przez
4 - ilość cylindrów.
Impulsy chcę podać na wejście przerwania INT0.
Teraz troszkę o czasie.
Zakres teoretyczny dla urządzenia pracy silnika określam na:
422 obr/min - 9000 obr/min
Chcę policzyć impulsy w danym określonym czasie. Mój procek ma przyłożony
kwarc 11059200 Hz więc maksymalna częstotliwość pracy układu czasowego jako
16-to bitowego licznika impulsów wynosi 11059200 Hz / 24 = 460800 Hz (z
dokumentacji). To daje czas trwania okresu rzędu: 0,00000217 sekundy.
Licznik ma pracować w trybie 16to bitowym więc 0,00000217 sekundy x 65536
(do momentu zgłoszenia przerwania z licznika licząc od zera) = 0,142
sekundy.
Czyli 142 ms to minimalny okres dla uchwycenia choćby 1 impulsu, czyli
wyznacza mi minimalne obroty, jakie jestem w stanie uchwycić.
Stąd mam:
1 / (0,142) x 60 = 422 obr/min (jak wyżej).
Co do logiki działania:
- program ustawia liczniki T0 i T1 na zero przy starcie
- czeka na zgłoszenie przerwania opadjącym zboczem z INT0
- w momencie przerwania z INT0, blokuje to przerwanie i uruchamia 16bitowy
licznik czasu T1 popychany wewnętrznym oscylatorem.
- jednocześnie poprzez zworę między INT0 a T0 , licznik T0 zlicza kolejne
impulsy
- gdy T1 dojdzie do przepełnienia (65536) generuje przerwanie, które
zatrzymuje zliczania, obrabia wynik dla programu głównego, zeruje liczniki i
włącza przerwanie od INT0.
Wybaczcie, że może wyważam otwarte drzwi, ale zależy mi na zrozumieniu
zagadnienia, a po przekopaniu Google i kilku art. EP miałem kilka pomysłów
zamiast rozwiązania.
Za uwagi i sugestie z góry serdeczne THX.
D.
Bartek
Guest
Sun Sep 30, 2007 8:19 pm
Użytkownik "DEXTER" <dexter@home.pl> napisał w wiadomości
news:46ffef5e@news.home.net.pl...
Quote:
Hej.
Kolejnym moim wyzwaniem jest budowa obrotościomierza cyfrowego do
samochodu
na '51. Chciałbym pod Waszą ocenę poddać moje rozumowanie.
Impulsy będę zliczał z cewki zapłonowej, gdzie pojwiają mi się zera.
Pomijam
kwestię uformowania inpulsów do TTLa oraz fakt, że wynik muszę dzielić
przez
4 - ilość cylindrów.
Przez 4? IMHO jezeli silnik 4-suwowy to 1 iskra na 2 obroty walu ...
No chyba, ze cewka daje napiecie na swiece w kazdym obrocie walu...
Quote:
Chcę policzyć impulsy w danym określonym czasie. Mój procek ma przyłożony
kwarc 11059200 Hz więc maksymalna częstotliwość pracy układu czasowego
jako
16-to bitowego licznika impulsów wynosi 11059200 Hz / 24 = 460800 Hz (z
dokumentacji). To daje czas trwania okresu rzędu: 0,00000217 sekundy.
11059200 / 24? Hmmm zawsze myslalem, ze cykl rozkazowy trwa 12 taktow
zegara a nie 24. No ale skoro tak masz w dokumentacji...
Sam pomiar to w sumie zalezy od czasu odswiezania - czyli jak czesto chcesz
odswizac
wynik. Mozna albo liczyc ilosc impulsow w czasie - ale tu zeby wynik byl w
miare dokladny
mui tych impulsow troche nalapac, a wiec odswiezanie moze byc slabe...
Mozna tez liczyc czas jaki uplywa miedzy 2 kolejnymi iskrami ale tu trza
dokladny
wzorzec czasu i wysoka (w miare) czestotliwosc zegara procka (metoda lepsza
do
pomiaru niskich wartosci rpm).
Pozdrawiam,
Bartek
PC
Guest
Mon Oct 01, 2007 7:28 am
Iskry idą jednocześnie na 2 cylindry więc jest impuls na obrót.
PC
Janusz
Guest
Mon Oct 01, 2007 7:31 am
ja zrobilem sobie obrotomierz tak że zliczał czas między opadającymi
zboczami zewnetrznego przerwania i wystarczy do tego jeden licznik z
przerwaniem.
1.zbocze opadające
2.start licznika co np 100us i zliczanie programowe przerwan od T0.
3. kolejne zbocze opadające i stop zliczania od T0
4. przeliczenie i wywalenie na wyświetlacz.
5. go to 1.
Pozdrawiam
Janusz Brela