Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 28 mar 2024, o 11:18


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 24 ] 
Autor Wiadomość
 Tytuł: Przerwanie 1s
PostNapisane: 28 lis 2011, o 19:41 
Offline
Użytkownik

Dołączył(a): 05 lis 2011
Posty: 81
Pomógł: 0

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 ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lis 2011, o 20:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

Ja bym to zrobił tak:

Składnia: [ Pobierz ] [ Ukryj ]
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

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lis 2011, o 20:15 
Offline
Użytkownik

Dołączył(a): 05 lis 2011
Posty: 81
Pomógł: 0

ale co mi to dalo ? ja wiem jak zalaczyc przerwanie i ustawic preskaler, ale mnie chodzi jak podzielic 7812,5 zeby uzyskac 1Hz ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lis 2011, o 20:55 
Offline
Nowy

Dołączył(a): 20 lis 2011
Posty: 16
Pomógł: 0

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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lis 2011, o 21:02 
Offline
Użytkownik

Dołączył(a): 05 lis 2011
Posty: 81
Pomógł: 0

tylko wlasnie tutaj chodzi o dokladna 1s. Podobno mozna jakos podzielic to przez procedure ale jak to nie wiem



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lis 2011, o 21:08 
Offline
Nowy

Dołączył(a): 20 lis 2011
Posty: 16
Pomógł: 0

Tutaj masz dokładnie omówione Timery, po przeczytaniu na pewno wszystko ogarniesz.
http://diycenter.acid19.linuxpl.com/readarticle.php?article_id=3



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lis 2011, o 21:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

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

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lis 2011, o 22:10 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lis 2011, o 22:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

Nio ale wiesz Mirku zapewne powalające jest miganie ledem co 1s na timerze :)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lis 2011, o 22:50 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lis 2011, o 22:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

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 :)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lis 2011, o 23:02 
Offline
Użytkownik

Dołączył(a): 05 lis 2011
Posty: 81
Pomógł: 0

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 :D ale dziekuje za podowiedzi ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lis 2011, o 23:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

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 :)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lis 2011, o 23:16 
Offline
Użytkownik

Dołączył(a): 05 lis 2011
Posty: 81
Pomógł: 0

ja sie nie obrazam bo nie ma powodu ;) lecz poczatki bywaja trudne nic na to nie poradze :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lis 2011, o 23:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

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 :)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lis 2011, o 23:24 
Offline
Użytkownik

Dołączył(a): 05 lis 2011
Posty: 81
Pomógł: 0

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 :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lis 2011, o 23:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

Pobaw sie sprzetowym zegarem :)

jak masz zestaw ATB to jest tam pewnie koci PCF :)

a jak nie to polecam Dallasa DS1306 i DS1307

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lis 2011, o 23:41 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lis 2011, o 15:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

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 :)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lis 2011, o 17:15 
Offline
Użytkownik

Dołączył(a): 05 lis 2011
Posty: 81
Pomógł: 0

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:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lis 2011, o 17:31 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lis 2011, o 17:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

ee żes mnie uprzedził Mirku :)
no ale popieram całkowicie wypowieź -- to aż kłuje w oczy ze też kompilator się nie przekręcił :)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lis 2011, o 17:36 
Offline
Użytkownik

Dołączył(a): 05 lis 2011
Posty: 81
Pomógł: 0

po raz któryś THX ;) kurde przeoczyłem jakoś to :D
PS kompilator nic nie zgłosił, błędy poprawione i śmiga



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lis 2011, o 17:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

No dlatego napisałem "ze też sie kompilator nie przekręcił" bo skubany nie reaguje na takie błedy właśnie

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 24 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 8 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO