Hodiny a časování
Re: Hodiny a časování
Rozdíl mezi rezonátorem a krystalem je v úspoře místa (za kondenzátory).
Kondenzátory přímo ovlivňují frekvenci na které se krystal rozkmitá.
Je tedy fajn, že si koupíte supr přesný krystal s ppm 3 (nikoliv 30). Ale na jaké frekvenci bude kmitat určuje kapacita (kondenzátory + DPS).
Výrobce se logicky brání označením 0.5% z nominální frekvence. Což je přibližně +/- 80 000 Hz rozptyl od 16 MHz.
Kolik dává toleranci výrobce Arduina?
Kondenzátory přímo ovlivňují frekvenci na které se krystal rozkmitá.
Je tedy fajn, že si koupíte supr přesný krystal s ppm 3 (nikoliv 30). Ale na jaké frekvenci bude kmitat určuje kapacita (kondenzátory + DPS).
Výrobce se logicky brání označením 0.5% z nominální frekvence. Což je přibližně +/- 80 000 Hz rozptyl od 16 MHz.
Kolik dává toleranci výrobce Arduina?
Re: Hodiny a časování
Zdravím
takto vykládat funkci krystalu je asi trochu zavádějící. Frekvence krystalu je dána výbrusem. Krystal seříznutý na kmitočet 16kHz nebude kmitat na 40MHz a opačně. Ten výbrus či dnes řez je docela zásadní protože krystal při přivedení frekvence která téměř dosahuje kmitočtu výbrusu začne vibrovat a tyto vibrace jsou nejsilnější právě na daném kmitočtu (alespoń tak nás to učili) tak že se oscilátor v čipu doladí přesně na kmitočet toho krystalu. Kondenzátory které bývají před krystalem jsou pouze pro oddělení od obvodů oscilátoru a mohou být implementované na struktuře čipu. Krystal má výbrus z křemíku nebo z materiálu podobných a vyráběly obvykle pro vyšší kmitočty,
Rezonátory se vyráběly pro lacinější zařízení a hlavně nižší kmitočty (což už dnes asi neplatí). Bylo to určeno materiálem a hlavně tím, že rezonátor neměl vakuovou schránku kolem sebe (proto bývají krystaly větší).
Kondenzátory tedy rozhodně nelze měnit frekvenci kmitání krystalu, možná ji mírně ovlivnit ale opravdu jen nepatrně. A krystaly mají vždy jen dva vývody kdežto rezonátory mohou mít až čtyři.
takto vykládat funkci krystalu je asi trochu zavádějící. Frekvence krystalu je dána výbrusem. Krystal seříznutý na kmitočet 16kHz nebude kmitat na 40MHz a opačně. Ten výbrus či dnes řez je docela zásadní protože krystal při přivedení frekvence která téměř dosahuje kmitočtu výbrusu začne vibrovat a tyto vibrace jsou nejsilnější právě na daném kmitočtu (alespoń tak nás to učili) tak že se oscilátor v čipu doladí přesně na kmitočet toho krystalu. Kondenzátory které bývají před krystalem jsou pouze pro oddělení od obvodů oscilátoru a mohou být implementované na struktuře čipu. Krystal má výbrus z křemíku nebo z materiálu podobných a vyráběly obvykle pro vyšší kmitočty,
Rezonátory se vyráběly pro lacinější zařízení a hlavně nižší kmitočty (což už dnes asi neplatí). Bylo to určeno materiálem a hlavně tím, že rezonátor neměl vakuovou schránku kolem sebe (proto bývají krystaly větší).
Kondenzátory tedy rozhodně nelze měnit frekvenci kmitání krystalu, možná ji mírně ovlivnit ale opravdu jen nepatrně. A krystaly mají vždy jen dva vývody kdežto rezonátory mohou mít až čtyři.
Re: Hodiny a časování
Nikdo nemění frekvenci z 16 na 40, přesto se doučte jak harmonické násobky ovlivní chování výbrusu.daton píše:Zdravím
takto vykládat funkci krystalu je asi trochu zavádějící. Frekvence krystalu je dána výbrusem. Krystal seříznutý na kmitočet 16kHz nebude kmitat na 40MHz a opačně.
Kapacita kondenzátorů usnadňuje rozkmitání krystalu a ovlivňuje NEPATRNĚ jeho rezonanční frekvenci! Kapacita se zas mění s teplotou pouzdra a zas se posune frekvence.
Podle počtu nožiček odlišíte mouchu od pavouka, když nevidíte na obrázku proč má pouzdro obsahující kromě krystalu i dva kondenzátory nožičky tři.
Re: Hodiny a časování
Ty millis mi nedají spát. Co říkáte na toto provedení.
Kód: Vybrat vše
// ??? asi OK i pri preteceni, rozdil NANO (kýve se) +- do 5 sec./6hod.
#include <Arduino.h>
int hodin=12,minut=0,sekund=0; // nastaveni startu
unsigned long systemovycas,starycas; // aktualni, pamet
bool prodlevapulz; // pulz kazdou prodlevu na 1 obeh
int cas1,cas2,cas3; // casovace
// xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void casInkrement () //
{
prodlevapulz=0;
systemovycas = millis()/1000; // merim na 1 sec.
if (systemovycas != starycas) //
{ prodlevapulz=1; // pulz kazdou prodlevu na 1 obeh
starycas = systemovycas; // pamet
}
}
// xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void hodiny()
{ sekund=sekund+1;
if (sekund==60)
{sekund=0;
minut=minut+1;}
if (minut==60)
{minut=0;
hodin=hodin+1;}
if (hodin==24)
hodin=0;
Serial.print(hodin);
Serial.print(":");
Serial.print(minut);
Serial.print(":");
Serial.println(sekund);
}
void setup()
{ // SSSSSSSSSSSSSSSSSSSSSS
Serial.begin(9600);
// lcd.begin(16,2);
pinMode(13,OUTPUT);
casInkrement ();
}
void loop()
{ // ZZZZZZZZZZZZZZZZZZZZZZZZ
casInkrement();
if (prodlevapulz)
hodiny();
cas1 = cas1+prodlevapulz; //
if (cas1==4)
digitalWrite(13,1);
if (cas1==7)
{
digitalWrite(13,0);
cas1=0;
}
delay(990);
// KKKKKKKKKKKKKKKKKK
}
Re: Hodiny a časování
Pozor na desítkové dělení v případě přetečení.
Maximální hodnota
Kombinace desítkové a dvojkové soustavy je swinstvo.
Mimochodem - daton mne správně upozornil, že v tom mojem kódu je také chyba. pokud mi vychází
P.S. nějak se ti netrefila direktiva code
Maximální hodnota
unsigned long
je 4.294.967.295, takže při přetečení (nastává každých 49 dní, 17 hodin 2 minuty a 47,295 vteřin budeš mít vteřinu kratší o 705 milisekund, protože po přetečení okamžitě vyhodnotíš změnu jako novou vteřinu.Kombinace desítkové a dvojkové soustavy je swinstvo.
Mimochodem - daton mne správně upozornil, že v tom mojem kódu je také chyba. pokud mi vychází
tik
těsně před přetečení a naopak ms
stihnu až po přetečení, tak to podmínka neodchytí a rogram bude čekat téměř na věky věků.P.S. nějak se ti netrefila direktiva code
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
Re: Hodiny a časování
Zdar. Nechtěl jsem původně zabrat tolik na stránce. Jak se to code správně dělá?
S přetečením? Jo už to vidím. Ale už to řeším jen mimochodem (podle zkoušek je to stejně jen na kratší časy). Ale nenarůstá chyba.
"Kombinace desítkové a dvojkové soustavy je swinstvo." - co máš na mysli?
S přetečením? Jo už to vidím. Ale už to řeším jen mimochodem (podle zkoušek je to stejně jen na kratší časy). Ale nenarůstá chyba.
"Kombinace desítkové a dvojkové soustavy je swinstvo." - co máš na mysli?
Re: Hodiny a časování
Na tohle reagovat nebudu.Podle počtu nožiček odlišíte mouchu od pavouka
Ke zbytku, ohledně rezonátorů co jsou na vašich obrázcích je vše základní co potřebujete vědět zde
http://www.murata.com/~/media/webrenewa ... /p17e.ashx
A k běžným krystalům používaným v arduinech jsou informace zde
https://en.wikipedia.org/wiki/Crystal_oscillator
nechť se tedy poučí kdo chce sám.
Re: Hodiny a časování
Tedy Vás poučím Datonedaton píše:nechť se tedy poučí kdo chce sám.
Procesory Atmel používají Piercův oscilátor
a jeho funcki pochopíte ze stránky Wikipedie https://en.wikipedia.org/wiki/Pierce_oscillator
Pana učitele požádejte o pomoc se stavbou tohoto zapojení:
Chcete-li se dále ztrapňovat, jsem Vám k dispozici ve všední dny i na nevšední otázky.
Re: Hodiny a časování
Promiňte pane Pgerlo sám znamená sám, od vás opravdu rady ani poučení nepřijímám to si nastuduji u výrobce a reagovat již na vás nebudu, protože téma bylo celé jinak a jednalo se o určení zda je tam rezonátor či krystal a to se stalo v mém minulém příspěvku. Další debata je bezpředmětná.nechť se tedy poučí kdo chce sám
Re: Hodiny a časování
To máte pravdu, pohledal jsem na internetu "vaše" millis() o kterém je tu zbytečná debata, bez ohledu na nepřesnost zdroje kmitočtu.daton píše:Další debata je bezpředmětná.
https://ucexperiment.wordpress.com/2012 ... -function/
Vám nebráním v další debatě jestli je lepší rezonátor z vakuových trubic, nebo od číňana.
Chybama se člověk učí, pokud není nepoučitelný