Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Arduino izvrsavanje instrukcija

[es] :: Elektronika :: Mikrokontroleri :: Arduino izvrsavanje instrukcija

[ Pregleda: 4137 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

intelisense

Član broj: 326626
Poruke: 26



Profil

icon Arduino izvrsavanje instrukcija09.12.2014. u 18:36 - pre 113 meseci
Pozdrav svima!

Skoro sam radio jedan projekat sa Arduinom i bilo mi je neophodno da u razlicitim vremenskim intervalima obavljam izvesne radnje. Npr., da ocitavam temperaturu svakih 5 minuta i da ocitavam vreme sa DS1302 svakih 5 sekundi. To sam uradio na sledeci nacin:

loop():

//----------------------------------------------------------
// za ocitavanje temperature
const unsigned long interval = 5 * 60 * 1000UL;
static unsigned long last_sample_time = 0 - interval;

unsigned long now = millis();
if ((now - last_sample_time) >= interval)
{
last_sample_time = now;

temperature();
}
//---------------------------------------------------------
// za ocitavanje vremena
const unsigned long clock_interval = 5000UL;
static unsigned long last_sample_time_clock = 0 - clock_interval;

unsigned long now_clock = millis();
if ((now_clock - last_sample_time_clock) >= clock_interval)
{
last_sample_time_clock = now_clock;

clock();
}
//----------------------------------------------------------

Ono sto me zanima je: Ako bi se nekada desilo da se vremena semplovanja temperature i sata poklope, ili npr. kada bih bilo koje 2 stvari semplovao u isto vreme, da li bi se obe stvari korektno semplovale ili bi nesto bilo izostavljeno?

Hvala.
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: Arduino izvrsavanje instrukcija09.12.2014. u 18:50 - pre 113 meseci
Ne možeš ti softverski ništa semplovati u isto vreme, jer mikrokontroler može da izvršava samo jednu po jednu instrukciju redom.
"U isto vreme" u tvom primjerju može da znači da će mikrokontroler u nekom trenutku očitati jedno, a odmah u najbližem sledećem mogućem taktu procesora drugu.
Tebi je to možda "u isto vreme", ali na nivou mikrokontrolera jedno se uvijek desi par mili/mikro/nano...sekundi (zavisi od brzine procesora) poslije onog prethodnog.
 
Odgovor na temu

intelisense

Član broj: 326626
Poruke: 26



Profil

icon Re: Arduino izvrsavanje instrukcija09.12.2014. u 18:57 - pre 113 meseci
Hvala na odgovoru!

Znam da moje "isto vreme" i njegovo nisu ista vremena.
Hteo sam samo da proverim da li ce se sve odvijati kako treba.

Pozdrav!
 
Odgovor na temu

Zlatni_bg
Nikola S
Beograd

Član broj: 65708
Poruke: 4420
*.dynamic.sbb.rs.



+498 Profil

icon Re: Arduino izvrsavanje instrukcija14.12.2014. u 00:36 - pre 113 meseci
U ovom slucaju se najcesce koriste interruptovi, pogledaj malo o njima.

http://arduino.cc/en/Reference/Interrupts

Ima vise nacina kako mozes da ih koristis, vremenski, sa nekim okidacima, itd... Ovo ti je u sustini neki "multitasking" kod Arduina.
THE ONLY EASY DAY WAS YESTERDAY
 
Odgovor na temu

intelisense

Član broj: 326626
Poruke: 26



Profil

icon Re: Arduino izvrsavanje instrukcija17.12.2014. u 23:18 - pre 112 meseci
Bice od koristi, hvala!
 
Odgovor na temu

intelisense

Član broj: 326626
Poruke: 26



Profil

icon Re: Arduino izvrsavanje instrukcija03.01.2015. u 16:08 - pre 112 meseci
Da li neko ima ideju kako da napravim neki pseudo multi-threading kod Arduina?

Konkretno mi treba resenje sledeceg problema:
Napravio sam tajmer koji okida releje u zavisnosti od vremena koje se ucita putem daljinskog upravljaca (sve se ispisuje na LCD). Sad, da bih uneo vreme koje koristi tajmer, moram da stavim beskonacnu petlju, a ona mi blokira sve ostale stvarcice koje se izvrsavaju u pozadini.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: Arduino izvrsavanje instrukcija03.01.2015. u 16:17 - pre 112 meseci
interapti
 
Odgovor na temu

intelisense

Član broj: 326626
Poruke: 26



Profil

icon Re: Arduino izvrsavanje instrukcija03.01.2015. u 16:45 - pre 112 meseci
U redu, interapti ..

Hardverske verovatno ne bih mogao da iskoristim jer hocu da mi sve radi na daljinac.
Sad, za softverske ... Nesto sam citao da se mogu pozajmiti neka 3 tajmera u te svrhe, ali i to da moze doci do konflikta ako se oni vec koriste.
 
Odgovor na temu

introitus
Srbija

Član broj: 9252
Poruke: 324
*.com
Via: [es] mailing liste



+7 Profil

icon Re: Arduino izvrsavanje instrukcija03.01.2015. u 17:24 - pre 112 meseci
Ne poznajem Arduino platformu ali dovoljan ti je jedan interapt za
daljinac, a sta se tacno desilo obradjujes kad se dogodi interapat i
onda izvrsavas sta si zamislio.

 
Odgovor na temu

basicD
Beograd

Član broj: 47449
Poruke: 70
*.dynamic.sbb.rs.



+26 Profil

icon Re: Arduino izvrsavanje instrukcija03.01.2015. u 22:53 - pre 112 meseci
Citat:
intelisense: Da li neko ima ideju kako da napravim neki pseudo multi-threading kod Arduina?


SoftTimer
History, in general, only informs us what bad government is.
Thomas Jefferson
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: Arduino izvrsavanje instrukcija04.01.2015. u 01:13 - pre 112 meseci
pazi sa tim pitanjem je jasno da ne razumes kako interapti rade :(

elem, ako ne umes sam, onda uzmi neki gotov rtos za arduino

https://github.com/greiman/NilRTOS-Arduino
https://code.google.com/p/duinos/
https://github.com/PeterVranken/RTuinOS

ako se dobro secam duinos podrzava preemtive mutlitasking, baziran na
freertos, moguce najbolji od ta tri koja sam ti linkovao, no pogledaj
sam pa odluci
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: Arduino izvrsavanje instrukcija

[ Pregleda: 4137 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.