Skocz do zawartości

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


farmaceuta

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 do komentarza
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 do komentarza
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 do komentarza
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 do komentarza
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 do komentarza
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 do komentarza
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 do komentarza
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 do komentarza
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 do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.