ATNEL tech-forum https://forum.atnel.pl/ |
|
Przerwanie 1s https://forum.atnel.pl/topic67.html |
Strona 1 z 1 |
Autor: | Michal_PB1 [ 28 lis 2011, o 19:41 ] |
Tytuł: | Przerwanie 1s |
Witam Mam pytanie jak uzyskać przerwanie co 1s przy taktowaniu 8MHz. Podobno można dzielić otrzymany wynik, ale w jaki sposób bo dzieląc np 8000000(8MHZ)/1024(presklare)/1Hz(przerwanie 1s) --> OCR = 7812,5 i jak to teraz podzielić przez te 7812,5 żeby uzyskać 1Hz. Dziękuję znowu za odp |
Autor: | SunRiver [ 28 lis 2011, o 20:09 ] |
Tytuł: | Re: Przerwanie 1s |
Ja bym to zrobił tak: język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. a najlepiej tak bo lubię skracać i upraszczać co się da -- w końcu "C" no nie |
Autor: | Michal_PB1 [ 28 lis 2011, o 20:15 ] |
Tytuł: | Re: Przerwanie 1s |
ale co mi to dalo ? ja wiem jak zalaczyc przerwanie i ustawic preskaler, ale mnie chodzi jak podzielic 7812,5 zeby uzyskac 1Hz ? |
Autor: | pawel2604 [ 28 lis 2011, o 20:55 ] |
Tytuł: | Re: Przerwanie 1s |
Zrób zmienna która bedzie zwiekszana w kazdym przerwaniu o 1, i porównuj jej wartość z 7812. Kiedy osiągnie tą wartość wtedy minie prawie 1 sekunda. Następnie ja wyzeruj i tak w kółko. |
Autor: | Michal_PB1 [ 28 lis 2011, o 21:02 ] |
Tytuł: | Re: Przerwanie 1s |
tylko wlasnie tutaj chodzi o dokladna 1s. Podobno mozna jakos podzielic to przez procedure ale jak to nie wiem |
Autor: | pawel2604 [ 28 lis 2011, o 21:08 ] |
Tytuł: | Re: Przerwanie 1s |
Tutaj masz dokładnie omówione Timery, po przeczytaniu na pewno wszystko ogarniesz. http://diycenter.acid19.linuxpl.com/readarticle.php?article_id=3 |
Autor: | SunRiver [ 28 lis 2011, o 21:15 ] |
Tytuł: | Re: Przerwanie 1s |
chcesz dokładną 1s ?? najprościej dać kwarc 32768Hz podłączonym do końcówek TOSC1 i TOSC2 bez dodatkowych kondensatorów. Timer 2 jest wtedy taktowany powyższą częstotliwością podzieloną przez 128, co powoduje, że przepełnia się on i generuje przerwania z częstotliwością dokładnie 1Hz. a tak przy 8mhz uzyskasz zawsze około 1hz może jednaj poszukaj preskalera będącego liczba całkowita co ?? przecież jakbyś podzielił 8Mhz /128 to masz ładne 62500 do porównania prawda ?? pewnie używasz M32 jesli tak to 8Mhz/256 i dalej masz całkowity wynik mieszczący się w zakresie czyli 31250 |
Autor: | mirekk36 [ 28 lis 2011, o 22:10 ] |
Tytuł: | Re: Przerwanie 1s |
SunRiver napisał(a): pewnie używasz M32 jesli tak to 8Mhz/256 i dalej masz całkowity wynik mieszczący się w zakresie czyli 31250 Panie autor wątku - czy trzeba czegoś więcej niż to co napisał wyżej kolega ? A tak przy okazji polecam nie męczyć timerów sprzętowych do takich strasznych rzeczy jak odmierzanie KOSMICZNIE długich czasów. Przecież 1s z punktu widzenia mikrokontrolera to wieczność One służą do czegoś innego - można by rzec do celów wyższych (czytaj: czasów dużo krótszych) |
Autor: | SunRiver [ 28 lis 2011, o 22:38 ] |
Tytuł: | Re: Przerwanie 1s |
Nio ale wiesz Mirku zapewne powalające jest miganie ledem co 1s na timerze |
Autor: | mirekk36 [ 28 lis 2011, o 22:50 ] |
Tytuł: | Re: Przerwanie 1s |
SunRiver napisał(a): Nio ale wiesz Mirku zapewne powalające jest miganie ledem co 1s na timerze No tak .... ale też z drugiej strony dobrze rozumiem początkujących, dla których częstokroć osiągnięcie ideału 1 sekundy bywa wyznacznikiem powodzenia w programowaniu.... Ciężko bowiem od razu załapać to wykorzystanie timerów tak w praktyce .... No ale jakby nie patrzeć - warto podpowiedzieć - bo każdy musi od czegoś zacząć - dlatego cieszę się, że poddałeś pierwszy taką prawidłową odpowiedź pytającemu to się nazywa Pomoc. |
Autor: | SunRiver [ 28 lis 2011, o 22:55 ] |
Tytuł: | Re: Przerwanie 1s |
Myslałem że wcześniejsze go naprowadzi -- choć no ale wiesz ukladanie sobie kłód pod nogami to chyba specjalność dlatego tez wspomniałem o kwarcu zegarkowym wcześniej ustawienia i inicjacja też powinna go naprowadzić na właściwy trop -- czyli szukania dzielnika w celu uzyskania w wyniku liczby całkowitej bo mega moze jest MCU ale FPU to już mieć nie bedzie |
Autor: | Michal_PB1 [ 28 lis 2011, o 23:02 ] |
Tytuł: | Re: Przerwanie 1s |
odliczanie nie ma mi sluzyc do migania led co 1s bo zdaje sobie sprawe ze to jest "zmarnowanie" Timera i ze lepszym rozwiazaniem bylo by np _delay_ms(1000). A chodzi mi odmierzanie 1s do takiego prototypowego zegarka, który pracujac na _delay_ms(1000) miewa opoznianie znikone w ciagu godz/dnia, ale na dluzsza mete te sekundy daja dluzszy okres spoznienia/spieszenia ale dziekuje za podowiedzi |
Autor: | SunRiver [ 28 lis 2011, o 23:15 ] |
Tytuł: | Re: Przerwanie 1s |
Nie obrażaj się zaraz , ale do robienia zegarków to wolę DS1306/1307 ew wersje 1Wire DS1904 , a PCF-a omijam szerokim łukiem jakoś mi nie leży |
Autor: | Michal_PB1 [ 28 lis 2011, o 23:16 ] |
Tytuł: | Re: Przerwanie 1s |
ja sie nie obrazam bo nie ma powodu lecz poczatki bywaja trudne nic na to nie poradze |
Autor: | SunRiver [ 28 lis 2011, o 23:19 ] |
Tytuł: | Re: Przerwanie 1s |
Zawsze wolałem sprzętowe docelowe rozwiazania , bo półśrodki czyli budzik na medze mnie jakoś nie kręciły a na poczatku no cóż zawsze sobie lubimy utrudniać życie |
Autor: | Michal_PB1 [ 28 lis 2011, o 23:24 ] |
Tytuł: | Re: Przerwanie 1s |
ja rozumiem ze moze nie jest to dobre rozwiazanie, ale glownie zaczelo sie od LCD i wyswietlania na nim godz ,a ze sie spoznia/spieszy to zaczely pytania jak odmierzyc 1s dokladnie zeby to w miare dzialalo. bo z wyswietlaniem i ustawianiem godz i minut jakos dalem rade |
Autor: | SunRiver [ 28 lis 2011, o 23:29 ] |
Tytuł: | Re: Przerwanie 1s |
Pobaw sie sprzetowym zegarem jak masz zestaw ATB to jest tam pewnie koci PCF a jak nie to polecam Dallasa DS1306 i DS1307 |
Autor: | mirekk36 [ 28 lis 2011, o 23:41 ] |
Tytuł: | Re: Przerwanie 1s |
SunRiver napisał(a): Pobaw sie sprzetowym zegarem jak masz zestaw ATB to jest tam pewnie koci PCF a jak nie to polecam Dallasa DS1306 i DS1307 hyhyhy jest jest - no ale może nie aż taki koci PCF ... wbrew pozorom jeśli chodzi o datę i czas można na nim wszystko zrobić co tylko dusza zapragnie. Fakt trzeba użyć kilka linii kodu więcej niż do takich DS'ów .... ale tak .... do nauki programowania jak w sam raz - bo nie ma być za łatwo .... a z drugiej strony ileż można wymagać od takich zegarków RTC ? .... Jeśli brać pod uwagę np to, że jakieś modele się późnią czy śpieszą - to wszystkie są kocie bo - każdy się będzie późnił w przeciągu 100 lat nie wspomnę już o 1000 bez ustawiania .... A na poważnie - to pewnie, że DS'ki są fajne .... tyle , że to jak z mikrokontrolerami trochę - z punktu widzenia pojedynczego amatorskiego projektu w ogóle nie jest ważne jaki procesor a jaki programista. Za to z punktu widzenia masowej produkcji czasem już ważny może się stać wybór właściwego mikrokontrolera ... i tak samo z układami RTC. Tzn tak mi się wydaje. |
Autor: | SunRiver [ 29 lis 2011, o 15:59 ] |
Tytuł: | Re: Przerwanie 1s |
To "kocie" to mi chyba sie od ciebie udzielilo Mirku ale pomijając to niemam nic do PCF-a w sumie popularny jak grzybica stóp zegarek, ale jakos dziwnie go nie lubię natomiast DS1306 jest ciekawy sam z siebie ma to samo co PCF tyle że na magistrali SPI która lubie DS1307 jest w sumie tym samym co PCF8583 tez na magistrali TWI no ma mniejsze zasoby od PCF-a DS1904 działa na 1Wire jest pastylka iButton wygodną w użyciu Pewnie nieodpowiem dlaczego DS-y bo cenowo podobnie itd , ale PCF jest tak oklepany że wolałem cos innego Zapewne masz rację mirku co do masowej produkcji , ale np zastosowanie DS1990 rozmiar F3 jest ekonomiczniejsze zabiera jeden pin mikrokontrolera i zajmuje malutko miejsca mozna włożyc w pionową oprawke baterii podtrzymujacej cały RTC bo bateryjke ma w środku swoją Ale co kto lubi prawda, dlatego właściwsze wydaje mi się pokazanie drzwi, a czy ktoś przez nie przejdzie to jego sprawa |
Autor: | Michal_PB1 [ 29 lis 2011, o 17:15 ] |
Tytuł: | Re: Przerwanie 1s |
czemu nie działa mi przerwanie (LED jest w celu sprawdzenia) układ złożony na Atmega8, przerwanie co 1Hz, timer 16 bitowy Poniżej kod: |
Autor: | mirekk36 [ 29 lis 2011, o 17:31 ] |
Tytuł: | Re: Przerwanie 1s |
Michal_PB1 napisał(a): czemu nie działa mi przerwanie A zwrócił kolega uwagę w którym rejestrze jest bit WGM12 ??? na pewno w TCCR1A ? hmmm ? Nie wspomnę już o bitach preskalera - ten sam błędzik. |
Autor: | SunRiver [ 29 lis 2011, o 17:34 ] |
Tytuł: | Re: Przerwanie 1s |
ee żes mnie uprzedził Mirku no ale popieram całkowicie wypowieź -- to aż kłuje w oczy ze też kompilator się nie przekręcił |
Autor: | Michal_PB1 [ 29 lis 2011, o 17:36 ] |
Tytuł: | Re: Przerwanie 1s |
po raz któryś THX kurde przeoczyłem jakoś to PS kompilator nic nie zgłosił, błędy poprawione i śmiga |
Autor: | SunRiver [ 29 lis 2011, o 17:54 ] |
Tytuł: | Re: Przerwanie 1s |
No dlatego napisałem "ze też sie kompilator nie przekręcił" bo skubany nie reaguje na takie błedy właśnie |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |