Stránka 1 z 1
Arduino - delay nebo millis?
Napsal: 11 čer 2014, 00:01
od 666mb
Ahoj,
potřebuji měřit teplotu místnosti, ale stačí mi ji měřit cca jednou za 5 minut.
Je pro procesor lepší na tuto dobu dát funkci delay (delay(300000)) a nebo je to jedno a mám to udělat přes millis?
Jde mi o to, jestli procesoru ulehčím práci pomocí funkce delay.
Díky, Mirek
Napsal: 11 čer 2014, 09:32
od petus
a co přes časovač a mezitím uP uspat?
Napsal: 11 čer 2014, 17:14
od monterjirka
A je třeba, aby Arduino dělalo i něco jiného?
Delay je funkce, kdy to opravdu "čeká" a nic jiného nedělá, dá se z toho stavu dostat pomocí přerušení (pokud bude mít potřebnou prioritu), ale pak už se nemusí vrátit a pokračovat ve správném čase.
Při funkci MILLIS se dá zpracovávat i něco jiného, ale musí se pomocí MILLIS pravidelně zjišťovat, jestli už uplynuly ty správné milisekundy...
Elegantní by to bylo přes přerušení od časovače, jak píše PETUS, pak je jedno, jestli bude SLEEPnutý, nebo nebude dělat nic nebo bude dělat něco jiného.
Napsal: 12 čer 2014, 23:51
od 666mb
Nic jiného dělat nebude, pouze změří teplotu a odešle ji na do databáze MySQL pomocí PHP
Díky za pomoc, šlo mi o to, abych nemusel ten procesor třeba za měsíc měnit

Napsal: 13 čer 2014, 06:28
od AB1
Jde mi o to, jestli procesoru ulehčím práci pomocí funkce delay.
...
Díky za pomoc, šlo mi o to, abych nemusel ten procesor třeba za měsíc měnit
Představa, že se procesor dá nějak šetřit aby déle vydržel (jako třeba motor auta), není správná.
Procesor, pokud není v režimu "sleep", vykonává nepřetržitě jednu asemblerovou instrukci za druhou, bez ohledu na to co mu napíšeme v programu.
Takže jeho 'zatížení' je stále stejné, ať čeká v nějaké zpožďovací funkci, nebo počítá složitý matematický příklad.
Napsal: 13 čer 2014, 07:14
od rob_brno
Možná by mcu ani nemusel padat do SLEEP. Ale pokud jeho plný výkon není třeba jindy např. při odesílání té teploty, tak bych jej taktoval na co nejnižší frekvenci, at zbytečně moc nežere.
Napsal: 13 čer 2014, 18:49
od 666mb
Díky, to jsem chtěl vědět
