Skocz do zawartości

16Mhz vs 32.768khz czyli kwarc a blad pomiaru czasu rzeczywistego


Pomocna odpowiedź

Witam wszystkich...gnebi mnie troszke ostatnio temat kwarcow w Arduino  i roznica dokladnosci w pomiarze czasu...millis() jest podobno obarczone bledem 1.024ms co by bylo zrozumiale bo timer0, prescaler na 64 daje 4 us razy 256 (8-bit) rowna sie wlasnie 1.024ms...skoro tak to wystarczy tak ustawic licznik zeby "dobijalo" tylko do 1.000ms czyli 250 (gdzie 1ms razy 1000 rowna sie dokladnie 1s)...zakladajac ze moge manipulowac rejestrami, preskalerem tak zeby otrzymywac czasy bez bledow to jaka przewage ma kwarc 32.768khz zakladajac ze oba (16mhz/32.768khz) sa tej samej dokladnosci? (chodzi tylko w kwestii dokladnosci pomiaru czasu) 

Odrazu mowie ze nie buduje zadnego zegara na Arduino, ani nie mam zamiaru przerabiac millis() a pytam z ciekawosci zeby miec juz spokoj z samym soba...😉

Link to post
Share on other sites

Jeśli dokładność tych kwarców w ppm jest taka sama, to niema znaczenia który użyjesz. Z tym kwarcem zegarkowym jest taka rzecz że możesz go podłączyć bezpośrednio do wejścia timera2 i w ten sposób masz przerwania co 1s. W atmedze 328 podłączasz go zamiast generatora 16Mhz a sam mikrokontroler może być taktowany wewnętrznym generatorem rc

Jakbyś chciał przetestować 

int main(void){
ASSR |=(1<<AS2);  //zmiana źródła zegara licznika na kwarc zegarkowy
TIMSK |=(1<<TOIE2); //zezwolenie na przerwanie po przepełnieniu
TCCR2 |=(1<<CS22)|(1<<CS20); //prescaler 128
sei();
while(1);
}
 
ISR(TIMER2_OVF_vect){
// jakas instrukcja wywolywana co 1 sekundę
} 

 

Edytowano przez _LM_
  • Lubię! 1
Link to post
Share on other sites

  

  

1 godzinę temu, _LM_ napisał:

Jeśli dokładność tych kwarców w ppm jest taka sama, to niema znaczenia który użyjesz.

 

_LM_: dokładny to +/-20ppm czy +/-50ppm?

Edytowano przez Misiek_86
Link to post
Share on other sites
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

(edytowany)
4 godziny temu, _LM_ napisał:

Jeśli dokładność tych kwarców w ppm jest taka sama, to niema znaczenia który użyjesz. 

A no wlasnie...wiec czemu tego nie uwzglednili...🤔 zamiast czekac na 256 mozna bylo ustawic 250 i juz jest dokladnie 1ms podczas przepelnienia...

 

4 godziny temu, _LM_ napisał:

 Z tym kwarcem zegarkowym jest taka rzecz że możesz go podłączyć bezpośrednio do wejścia timera2 i w ten sposób masz przerwania co 1s. W atmedze 328 podłączasz go zamiast generatora 16Mhz a sam mikrokontroler może być taktowany wewnętrznym generatorem rc

Tak tak..ten temat juz rozkminilem😉 znalazlem pare dobrych artykulow na ten temat...no nic, jak mi sie cos jeszcze przypomni to bede pytal...

Tak tylko jeszcze przy okazji dodam, bo ktos moze nie wiedziec, to ten parametr "ppm" to blad jednej milionowej w dokladnosci...czyli np. +/-20ppm oznacza (maksymalnie wedlug producenta) blad 20us na 1s..czyli im mniejszy ten parametr tyl lepsze wyniki...

Edytowano przez farmaceuta
Link to post
Share on other sites
7 godzin temu, farmaceuta napisał:

A no wlasnie...wiec czemu tego nie uwzglednili...🤔

Pewnie dla tego że te 1mS jest wyliczane dla każdej możliwej częstotliwości taktowania. 

 

7 godzin temu, farmaceuta napisał:

Tak tylko jeszcze przy okazji dodam, bo ktos moze nie wiedziec, to ten parametr "ppm" to blad jednej milionowej w dokladnosci...czyli np. +/-20ppm oznacza (maksymalnie wedlug producenta) blad 20us na 1s..

No a sekunda do sekundy minuta do minuty. A błąd rośnie do tego starzenie rezonatora i parę innych niuansów 

Edytowano przez _LM_
Link to post
Share on other sites
(edytowany)
15 minut temu, _LM_ napisał:

Pewnie dla tego że te 1mS jest wyliczane dla każdej możliwej częstotliwości taktowania. 

Nie wiem czy dobrze zrozumialem, ale jesli chodzi o rozne kwarce jak np. 16/8/4/2mhz to nic sie nie zmienia poza preskalerem...jedynie 1mhz musial by robic 4 przerwania na 1ms i trzeba by to uwzglednic...

Edytowano przez farmaceuta
Link to post
Share on other sites
13 minut temu, _LM_ napisał:

nie wiem co tam twórcy mieli na myśli 🙂

A lenie smierdzace..tylko pinondze od bidnych pozbirac i na wodke do baru o zaskakujacej nazwie....Arduino😁 (nie no swiruje i zartuje..😉

Tak tylko poruszylem temat bo bylem ciekaw jak to z tymi kwarcami wkoncu...

Link to post
Share on other sites

@farmaceuta jeśli interesuje cię jakiś przykład praktyczny to dzisiaj złożyłem na płytce stykowej atmege328p plus kwarc 16Mhz plus dwa kondensatory i wyprowadziłem zegar na PB0. Na mierniku miałem stabilne 16.002Mhz. Drugi test zrobiłem na oryginalnym arduino uno. Podłączyłem programator wyprowadziłem zegar na pin 8 i tu się zdziwiłem bo przez kilka sekund częstotliwość lekko się waha po czym ustabilizowała się na 15.987Mhz.

  • Pomogłeś! 1
Link to post
Share on other sites

To w pierwszym przypadku wychodzi chyba 2 sekundy bledu na jakies 4 i pol godziny...zakladajac ze kwarc bedzie ladnie stabilnie tykal...w drugim przypadku to juz gorzej...13 sekund, co na dobe juz da ponad minute bledu..sporo...tak sobie tylko teoretyzowalem czy jest sens mierzyc czas kwarcem zamiast jakiegos RTC zewnetrznego...i jak widac w twoim tescie, do nie wymagajacych zastosowan jak najbardziej sie da...(jakies sterowanie podlewaniem oswietleniem etc) tylko tego millisa() trzeba liczyc razy 1.024...dzieki za info😉

 

 

10 godzin temu, slon napisał:

wyprowadziłem zegar na pin 8

a w jaki sposob jesli moge spytac?? Tak z ciekawosci...

Edit...a oki juz wiem😉

Link to post
Share on other sites
(edytowany)

Ze swojego doświadczenia tak dorzucę, że kwarc zegarkowy na dłuższą metę jest ok, jeżeli nie jest ważne kilka minut w tę czy tę

Edytowano przez BananWszyscy
  • Lubię! 1
Link to post
Share on other sites

No u mnie tak +/- na klonie "zegar" sie poznil 13sekund na godzine...czyli armagedon...😅 choc cudow sie nie spodziewalem...

Link to post
Share on other sites

 

1 godzinę temu, farmaceuta napisał:

13sekund na godzine...

Jeśli odchyłka jest stała, zawsze można zrobić korekcję programową lub dodając trymer w obwodzie generatora zniwelować błąd. 

  • Lubię! 1
Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.