Cześć.
Potrzebuje się poradzić.
Buduję sobie układ zliczający w jakimś okresie np 2 sek czas trwania stanu niskiego. W uC 8051 było to dość proste bo licznik mógł być bramowany stanem L, lecz w AVR nie mam tej funkcji i muszę trochę inaczej podejść do tego.
Myślałem o czymś takim.
1. Z uwagi na pojemność licznika użyty jest preskaler przez 256 sygnału zegarowego XTAL
2. odblokowuje dwa przerwania, od zbocza opadającego i przechwytującego stal licznika Timer1 przy zboczu narastającym.
3. Zasada jest taka że zbocze opadające wyzwala pomiar, zeruje stan licznika a zbocze narastające "łapie" jego stan i dodaje do zmiennej która przechowuje jego wartość w tym z góry zadanym czasie.
Ale..... jak zwykle coś.
Czy przy każdym wyzwoleniu pomiaru zboczem opadającym prawidłowa jest instrukcja Timer1=0; zerująca wartość licznika?
Czy przy każdym wyzwoleniu pomiaru uruchamiać licznik np w Bascomie start timer1, a po nadejściu przechwytywania zatrzymywać np stop timer1 czy pozostawić go cały czas pracującego? Co z preskalerem, czy wymaga on jakiegoś zerowania?
Nie wiem czy mam jeszcze na coś zwrócić uwagę, co powoduje że pomiary mi się wyłożą?
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięPomiar czasu stanu L przy pomocy przechwytywania w uC AVR
Moderatorzy:Jacek Bogusz, procesorowiec, r-mik, Moderatorzy
- Tomasz Gumny
- -
- Posty:685
- Rejestracja:4 lut 2004, o 23:31
- Lokalizacja:Trzcianka/Poznań
Re: Pomiar czasu stanu L przy pomocy przechwytywania w uC AV
Czasem dobrze podać typ procesora. Jeśli w onym jest wejście ICP, to warto je wykorzystać. Preskaler można zerować, ale jeśli włączasz go tylko z powodu za krótkiego licznika, to doliczaj przerwania od OVF.
Re: Pomiar czasu stanu L przy pomocy przechwytywania w uC AV
Fakt, najważniejszej rzeczy nie podałem. Pewnie domyśliliście sie że to AVR.
A co z zatrzymaniem licznika, warto to robić? Czy niech sobie biegnie a w przerwaniach: pierwszym INTx wyzerować a w drugim ICP przechwycić wartość?
A co z zatrzymaniem licznika, warto to robić? Czy niech sobie biegnie a w przerwaniach: pierwszym INTx wyzerować a w drugim ICP przechwycić wartość?
- Tomasz Gumny
- -
- Posty:685
- Rejestracja:4 lut 2004, o 23:31
- Lokalizacja:Trzcianka/Poznań
Re: Pomiar czasu stanu L przy pomocy przechwytywania w uC AV
Wejście ICP przepisuje zawartość licznika "w locie", więc wystarczy zmieniać aktywne zbocze. Nadal nie znamy typu procesora...
Re: Pomiar czasu stanu L przy pomocy przechwytywania w uC AV
nie wykorzystuje jakiś specjalnych funkcji liczników więc ATMega8 mi wystarczy.
łatwiej mi będzie jednak w int0 lub int1 zerować stan licznika a w ICP odczytać jego wartość tylko czy przed zerowaniem zatrzymać go czy po prostu do rejestrów wpisać 0
łatwiej mi będzie jednak w int0 lub int1 zerować stan licznika a w ICP odczytać jego wartość tylko czy przed zerowaniem zatrzymać go czy po prostu do rejestrów wpisać 0
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 21 gości