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



Teraz jest 17 sty 2025, o 14:35


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 32 ]  Przejdź na stronę 1, 2  Następna strona
Autor Wiadomość
PostNapisane: 21 wrz 2013, o 18:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

Jak wpisuje _delay_ms(7500); powinienem otrzymać opóźnienie trwające 7,5 sekundy, ale tak nie jest.
Jest znacznie krótsze, od czego to zależy??



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 wrz 2013, o 18:36 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3209
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 91

Od zgodności ustawienia częstotliwości w kodzie i w układzie.

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 wrz 2013, o 19:20 
Offline
Użytkownik

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

jakie taktowanie takie delaye :)

delay jest ściśle zależny od ustawienia FCPU
wiec jak piszesz program na 8MHz to musisz to powiedzieć kompilatorowi i taki tez kwarc zastosować

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 wrz 2013, o 19:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

nie rozumiem, skoro mam ustawione 8Mhz to jak uzyskać opóźnienie takie jak mnie interesuje czyli 7,5 s



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 wrz 2013, o 19:25 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3209
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 91

W środowisku programistycznym jakie masz ustawione taktowanie?

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 wrz 2013, o 19:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

w Eclipse jak daje project properities to tam jest 8000000 cloack frequency



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 wrz 2013, o 19:39 
Offline
Moderator
Avatar użytkownika

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

po pierwsze nie licz na dokładne _delay_ms()

po drugie w nowym toolchainie jest ograniczenie maksymalnej długości _delay_ms() coś koło 2s czy 2,5s nie pamiętam

jak chcesz tak długo to zrób sobie np tak

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


i jak chcesz np 7,5s to wołasz w kodzie:

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

_________________
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: 21 wrz 2013, o 21:35 
Offline
Użytkownik

Dołączył(a): 16 maja 2012
Posty: 349
Lokalizacja: Legnica
Zbananowany użytkownik

Pomógł: 23

Autor wątku nic nie napisał na temat dokładności z jaką chce uzyskać te 7,5s. Jak nie za dużą do Mirkowa propozycja jest ok. Aby uzyskać dużą dokładność to trzeba się zabawić timerami, RTC czy co tam jeszcze.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 wrz 2013, o 21:51 
Offline
Moderator
Avatar użytkownika

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

Niestety ale duża precyzja przy odmierzaniu tak gigantycznych czasów totalnie mija się z celem ;) to mniej więcej tak jakby ktoś pługiem chciał wygrawerować napis na wewnętrznej stronie obrączki .... A już zaprzęganie timerów do odmierzania tak długaśnych czasów to nieporozumienie. 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: 21 wrz 2013, o 22:31 
Offline
Użytkownik

Dołączył(a): 16 maja 2012
Posty: 349
Lokalizacja: Legnica
Zbananowany użytkownik

Pomógł: 23

Dlatego napisałem, że nic nie wiemy na temat dokładności. A zaprzęgnięcie timerów to odmierzania 7,5s ma sens bo w tym czasie procka można usypiać albo zająć go czymś innym niż obsługą funkcji _delay_ms().

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 wrz 2013, o 22:41 
Offline
Moderator
Avatar użytkownika

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

perlon napisał(a):
A zaprzęgnięcie timerów to odmierzania 7,5s ma sens bo w tym czasie procka można usypiać albo zająć go czymś innym niż obsługą funkcji _delay_ms().


No tak może zbyt dużego skrótu myślowego użyłem, mi bardziej chodziło o to że nie ma co zaprzęgać timerów aby uzyskiwać super dokładność odliczania tak długich czasów. Ale oczywiście tak jak mówisz - bez sensu totalnie też jest korzystanie z takich długich delayów - więc timer jakiś sprzętowy po to aby uruchomić tzw timery programowe - jak najbardziej

_________________
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: 21 wrz 2013, o 23:11 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Mirku, taki offtopic trochę. Ale skoro jesteśmy przy odmierzaniu czasu to może komuś się przyda również. Przymierzam się do budowy zaawansowanego zegara ciemniowego. I tak planuję odmierzanie czasów timerami programowymi, jest jakiś lepszy sposób ? Zakres ustawianych czasów będzie od dziesiątych części sekundy do kilkunastu minut.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 wrz 2013, o 23:44 
Offline
Moderator
Avatar użytkownika

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

sq8dsr napisał(a):
I tak planuję odmierzanie czasów timerami programowymi, jest jakiś lepszy sposób ? Zakres ustawianych czasów będzie od dziesiątych części sekundy do kilkunastu minut


zdecydowanie przy tych dłuższych czasach użyłbym właśnie czegoś na kształt timerów programowych - zresztą czy jest inne wyjście ? ;)

przy krótkich czasach gdyby zależało na większej dokładności - można i sprzętowym timerem bezpośrednio banglować - ale czy np jeśli będzie czas naświetlania (tak strzelam) 100ms .... to czy wielką różnicę zrobi jeśli np timer programowy będzie miał opóźnienie kilku ms w tę czy w tamtą stronę ... o ile w ogóle do tak dużego z jakichś względów miałoby dojść ;)

_________________
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: 21 wrz 2013, o 23:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Oczywiście dokładność nie jest tu potrzebna jakaś niesamowita, więc nie trzeba nawet bawić się w machanie rejestrem SREG by kontrolować przerwania. No przy dłuższych czasach w sumie można użyć RTC...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 wrz 2013, o 09:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

ja chcę takie duże opuźnienie bo chcę sobie zrobić zegarek na tej płytce startowej. LCD informacja, 7seg to czas(godz i min) a jak diody zapalą się wszystkie to mija jedna minuta.
diod jest 8 więc zapalają się co 7,5 sekundy. A w przerwaniu mam już funkcję do obsługi 7 seg. Więc jak będe chciał użyć przerwania do tego celu to w jaki sposób??



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 wrz 2013, o 14:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Chcesz robić zegar gdzie podstawą odmierzania czasu jest taktowanie procesora ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 wrz 2013, o 14:38 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3209
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 91

No to RTC, Panie - RTC.

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 wrz 2013, o 14:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

No właśnie, RTC. Nieprzypadkowo większość układów zegarowych jest taktowana 32768 Hz bo ta liczba (jako potęga dwójki) dzieli się bez reszty przez dwa aż do jedności. Dzięki temu stosując dzielniki /2 możemy dojść do idealnej sekundy.

Jeśli masz AT88 to możesz również zastosować właściwość Timera2 jaką jest asynchronous operation i taktować go kwarcem zegarkowym, wtedy też otrzymasz dokładne odmierzanie czasu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 wrz 2013, o 17:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

a tak, dokładniej?? ja się dopiero uczę i mało z tego rozumiem



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 wrz 2013, o 17:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

RTC - Real Time Clock czyli zegar czasu rzeczywistego. W uproszczeniu chodzi o osobny układ scalony, napędzany własnym generatorem, najczęściej 32768 Hz. Układ posiada własne rejestry i własną pamięć, liczy czas w oparciu o kaskadę dzielników częstotliwości. Dzięki temu można uzyskać dokładne zliczanie sekund. Z układem takim możesz komunikować się przez magistralę I2C lub SPI, w zależności od rodzaju układu. Wtedy procesor zajmuje się tylko cyklicznym odczytywaniem czasu z tego RTC, sam go nie odmierza. Jest to chyba najprostsza i najlepsza metoda na odmierzanie dokładnych odcinków czasu.

Drugi pomysł, tzn timer2 i jego tryb asynchroniczny. Polega na tym, że Timer2 może pracować z niezależnym źródłem taktu, którym może być rezonator kwarcowy o częstotliwości 32768Hz i wtedy na podobnej zasadzie robisz podział tej częstotliwości, tak aby uzyskać impulsy co 1 s.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 wrz 2013, o 17:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

Ja korzystam z tej płytki startowej na której mam procesor ATMEGA32, więc chyba pozostaje mi opcja drugie timera



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 wrz 2013, o 18:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

A jaka to płytka startowa ?
Układ RTC podłączany do I2C wymaga wymaga tylko 2 lini SDA i SCL. Dodatkowo, jeszcze trzecia żeby wyzwalać przerwanie co sekundę.
Podłączenie jest bardzo proste, a masz wtedy znacznie ułatwione zadanie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 wrz 2013, o 18:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

to atb wersje 1.04
http://www.atnel.pl/instrukcja-atb-rev-1-04.html



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 wrz 2013, o 18:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Wow, no to super, przecież tam masz na pokładzie RTC Phillipsa, podłączony do I2C
http://www.atnel.pl/atb-uklady-scalone.html



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 wrz 2013, o 18:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

Teraz to musze poczytać jak to obsłużyć



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 wrz 2013, o 18:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Będziesz potrzebował 2 rzeczy. Obsługi magistrali I2C oraz samej prezentacji czasu na wyświetlaczu. Na początku może łatwiej będzie na LCD bo nie będziesz potrzebował multipleksować wyświetlacza LED.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 wrz 2013, o 18:25 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3209
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 91

Poszukaj na forum obsługi układu PCF8583.

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 wrz 2013, o 18:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Made by Anty :)
http://forum.atnel.pl/topic3976.html?hilit=zegar

Zobacz sobie, tam masz pięknie rozpisaną obsługę tego, włącznie z I2C



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 wrz 2013, o 18:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2013
Posty: 56
Pomógł: 0

Ale ja już mam zrobiony wyświetlacz i LCD i 7seg a nawet ustawianie czasu za pomocą przycisków.
Tylko terz chciałem zrobić tak że diody się będą zapalać co 7,5 sekundy a jak zapalą się wszystkie to mija minuta.
Do tej pory chciałem wykorzystać delay



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 wrz 2013, o 18:31 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3209
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 91

No ale skoro masz już ten ukłąd na pokładzie to co szkodzi go zastosować?

A pewnie przyda się przy innych funkcjach...

_________________
http://www.jaglarz.info



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: 32 ]  Przejdź na stronę 1, 2  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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