Witam.
CZy jest ktos kto jest dobrze obeznany w obsludze przerwan z poziomu BASCOMA.
procesor Atmega8
Otoz moj problem polega na konflikcie tych dwoch przerwan.
Timer1 obsluguje mi odliczanie czasu np 100ms.
tzn po nastawionym czasie zalacza sie przekaznik poprzez podanie syg wysokiego na tranzystor.i ustawiana jest flaga zalczenia
Timer0 sluzy do podawania sygnalu prostokatnego o czasie 15us.
tzn po zalaczeniu przez Timer1 pinu sterujacego tranzystorem przekaznika.nastepuje zmaina syg na sterowanie tranzystrem syg prostokatnym w celu zmniejszenia poboru pradu przez przekaznik.
Po zlozeniu programu w calosc jakos te dwa przerwania komplikuja mi reszte programu.(programowanie czasu na 7seg,podglad itp)
jak obslugiwac timery aby oba poprawnie odmierzaly czasy i przerwania i sie nawzajem nie blokowaly?
Pozdrawiam
moj gg 5473355
meil Arusek@wp.pl
Stanowi to dla mnie bardzo powazny problem.Prosze o kontakt naprawde zorientowanych w temacie.
Z powazaniem
Arkadiusz G
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ęKolizyjnosc przerwan Timera0 i Timera1 z poziomu BASCOMA
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
-
- -
- Posty:651
- Rejestracja:13 sty 2005, o 18:38
- Lokalizacja:Krasnystaw
- Kontaktowanie:
No właśnie ja też zastanawiam się nad tym problemem i poprosiłbym osoby lepij obeznane w tym temacie o rady. Chce zbudować timer z 3 lub 4 wyświetlaczami LED do naświetlarki i zastanawiam się jak pogodzić multipleksowanie z odmierzaniem czasu. Do multipleksowania wyświetlaczy chciałem wykorzystać Timer0 a do odliczania czasu Timer1.
Zastanawiałem się też czy nie zrobić tego tylko na Timer0. Ustawiając timer na przerwanie co 4ms do multipleksowania wyświetlaczy (50Hz), i zmniejszać wartość sekund co 250 przerwań mugłbym otrzymać impuls co 1s.
Które z tych rozwiązań było by lepsze ?
Zastanawiałem się też czy nie zrobić tego tylko na Timer0. Ustawiając timer na przerwanie co 4ms do multipleksowania wyświetlaczy (50Hz), i zmniejszać wartość sekund co 250 przerwań mugłbym otrzymać impuls co 1s.
Które z tych rozwiązań było by lepsze ?
Witam.
Mam pytanie do CZajnika..
Moglbys bardzij sprycyzowac odpowiedz.jak mam zmieniac te wartosci?
Bo nie moge zczaic.
timer1 sluzy u mnie do odliczania 100ms.ktore zliczam i przepuscmy ust jakis czas t1 nastepuje zadzialanie przekaznika.i teraz timert1 odmierza dalej 100ms i po jakims czasie wylacza przekaznika.prpoblem mam skonfigurowac timera0 ktory w czasie kiedy zostanie zalaczony przekaznik ,przechwycil mi sterowanie portem i podawal co 15us sygnal prostokatny..w momencie gdy t1 wylaczy przekaznik t0 zaprzestaje prace.
I tu wlasnie mam problem jak one mogo jednoczesnie dzialac? probowalem roznych opcji.
w timer1 prze przerwaniu blokuje przerwania od t0 i przy powrocie z przerwania odblokowuje przerwaniat0 a w T0 kontroluje counter1 i jesli counter> 65000 to blokuje T0.
niby na logike powinno dzialc.a jednak nie dzial jak trzeba.
myslalem o PWM ale t0 nie obsluguje go.
Mam pytanie do CZajnika..
Moglbys bardzij sprycyzowac odpowiedz.jak mam zmieniac te wartosci?
Bo nie moge zczaic.
timer1 sluzy u mnie do odliczania 100ms.ktore zliczam i przepuscmy ust jakis czas t1 nastepuje zadzialanie przekaznika.i teraz timert1 odmierza dalej 100ms i po jakims czasie wylacza przekaznika.prpoblem mam skonfigurowac timera0 ktory w czasie kiedy zostanie zalaczony przekaznik ,przechwycil mi sterowanie portem i podawal co 15us sygnal prostokatny..w momencie gdy t1 wylaczy przekaznik t0 zaprzestaje prace.
I tu wlasnie mam problem jak one mogo jednoczesnie dzialac? probowalem roznych opcji.
w timer1 prze przerwaniu blokuje przerwania od t0 i przy powrocie z przerwania odblokowuje przerwaniat0 a w T0 kontroluje counter1 i jesli counter> 65000 to blokuje T0.
niby na logike powinno dzialc.a jednak nie dzial jak trzeba.
myslalem o PWM ale t0 nie obsluguje go.
Jeśli masz wolny Timer2 i możesz wykorzystać wyjście OC2 do podłączenia przekaźnika , to ... problem masz z głowy.Timer2 ustawić w tryb CTC Mode , a sprzęt Timera2 zajmie się generowaniem fali prostokątnej na wyjściu OC2 proca , no i odpada problem 2-go przerwania.Wartość wpisana do OCR2 , determinuje częstotliwość generowanej fali.
Piotrek
Piotrek
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 7 gości