Arduino - delay nebo millis?

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
666mb
Příspěvky: 68
Registrován: 23 úno 2014, 00:00

Arduino - delay nebo millis?

#1 Příspěvek 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
Uživatelský avatar
petus
Příspěvky: 594
Registrován: 12 led 2009, 00:00
Bydliště: Pelhřimov
Kontaktovat uživatele:

#2 Příspěvek od petus »

a co přes časovač a mezitím uP uspat?
Pokud něco chcete a neodpovídám,pošlete SZ :)
https://chiptron.cz - novinky ze světa elektro (Arduino, Raspberry Pi, ESP8266, STM32, ESP32...)
Peťus
Uživatelský avatar
monterjirka
Příspěvky: 2855
Registrován: 14 čer 2003, 00:00
Bydliště: Blížejov

#3 Příspěvek 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.
Uživatelský avatar
666mb
Příspěvky: 68
Registrován: 23 úno 2014, 00:00

#4 Příspěvek 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 :-)
Uživatelský avatar
AB1
Příspěvky: 312
Registrován: 23 lis 2009, 00:00

#5 Příspěvek 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.
Uživatelský avatar
rob_brno
Příspěvky: 209
Registrován: 12 říj 2012, 00:00

#6 Příspěvek 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.
Uživatelský avatar
666mb
Příspěvky: 68
Registrován: 23 úno 2014, 00:00

#7 Příspěvek od 666mb »

Díky, to jsem chtěl vědět :-)
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“