Go Down

Topic: ciclare in background (Read 3807 times) previous topic - next topic

Michele Menniti

#15
Jun 14, 2012, 10:52 pm Last Edit: Jun 14, 2012, 10:54 pm by Michele Menniti Reason: 1


ti sembro il tipo che si tira indietro per una bottiglia di champagne?  :smiley-mr-green:

Me ne guarderei bene dal pensarlo.  :)
Leo, nel frattempo sarà andato a festeggiare con gli amici XD

sarà crollato per lo stress :smiley-sweat:

ehi, io ho passato quota 6000, si festeggia tutti stasera :D
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

leo72

Non me ne ero neanche accorto perché i 10K li ho passati rispondendo in un altro thread  XD XD XD

dalubar

Quote
ehi, io ho passato quota 6000, si festeggia tutti stasera

Auguri anche a te, Mike... 6000 post sono anch'essi un traguardo di tutto rispetto.  ;)

Michele Menniti


Quote
ehi, io ho passato quota 6000, si festeggia tutti stasera

Auguri anche a te, Mike... 6000 post sono anch'essi un traguardo di tutto rispetto.  ;)

già 16000 minchiate in due sembrano un clock espresso in KHz :D
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

leo72



Quote
ehi, io ho passato quota 6000, si festeggia tutti stasera

Auguri anche a te, Mike... 6000 post sono anch'essi un traguardo di tutto rispetto.  ;)

già 16000 minchiate in due sembrano un clock espresso in KHz :D

SUPER ROTFL  :smiley-yell: :smiley-yell:

dalubar

#20
Jun 14, 2012, 11:09 pm Last Edit: Jun 14, 2012, 11:13 pm by dalubar Reason: 1
Bellissima questa! XD XD

Chissà cosa starà pensando l'autore del Topic, che si è visto trasformare una semplice domanda in un comitato dei festeggiamenti "pro veterani" del forum  :smiley-sweat:

Brunello


Michele Menniti


Bellissima questa! XD XD

Chissà cosa starà pensando l'autore del Topic, che si è visto trasformare una semplice domanda in un comitato dei festeggiamenti "pro veterani" del forum  :smiley-sweat:

beh, i suggerimenti li ha avuti, poi non è più tornato e ha lasciato la porta aperta :D

@ brunello: no, ci siamo spostati sul Topic onorario aperto da Uwe per Leo :D
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

zioTonino


Bellissima questa! XD XD

Chissà cosa starà pensando l'autore del Topic, che si è visto trasformare una semplice domanda in un comitato dei festeggiamenti "pro veterani" del forum  :smiley-sweat:


aahuaauhahu :) come vi siete permessi di festeggiare in casa mia in mia assenza??!  :) :)


ad ogni modo, ho provato la tecnica che mi avete suggerito e ho una domanda:
la funzione millis() sicuramente non è adatta al funzionamento "in continuo" perchè se l'apparecchio è acceso 24h su 24h prima o poi andrà in overflow! pensate sia possibile utilizzare a tale scopo l'rtc (ds1307) che ho collegato all'arduino?
tra le altre cose non so perchè ma l'rtc (adafruit) mi porta sempre 4 minuti di ritardo rispetto al pc, anche subito dopo averlo impostato con apposita funzione! come è possibile?

e un'altra cosa:
ho preso anche un display, sempre dell'adafuit (cod. 417), munito di pulsantiera  e vorrei creare un menù constestuale navigabile per settare, eventualmente, l'ora o piuttosto modificare dei valori: ovviamente vorrei , mentre interagisco, che tutto il resto funzioni (controllo pulsanti, sonde, pwm dei led...) pensate sia fattibile?

thanks

leo72

La funzione millis() fa in overflow dopo 49,7 giorni. Se hai un RTC esterno puoi semplicemente leggere i secondi e fare un ciclo basato sul cambio di questi. L'intervallo di 1s ti basta?

4 minuti fissi oppure uno scarto che poi cresce? Mi spiego, se imposti l'ora, vedi subito che ci sono 4 minuti di scarto ma poi restano 4 minuti anche dopo 1 giorno oppure lentamente lo scarto aumenta?

Il menu contestuale è sicuramente fattibile ma non è facile da scrivere: non so se sei alle prime armi. Ti conviene vedere se loro hanno un esempio e poi elaborare il tuo partendo da quello.

zioTonino

lo scarto sembra costante: non ho fatto misure precise! c'è qualche misura che posso fare per accorgermi se guadagna secondi?

per il menu contestuale non hanno esempi, quindi se mi potessi consigliare qualcosa te ne sarei grato!

il millis() l'ho sostituito con un confronto tra abs(now.second()-prev)>=1
e dovrebbe andare bene sempre e cmq...

leo72

Stiamo parlando di un orario impostato tramite un'interfaccia oppure dello sketch compilato con le costanti __DATE__ e __TIME__?
Queste prendono semplicemente l'orario di sistema e lo memorizzano nello sketch. Se resettassi il tuo circuito fra 1 mese, ripartirebbe con l'orario e la data in cui hai compilato il programma.

Di esempi ce ne sono diversi. Io ho questo shield:
http://www.nuelectronics.com/estore/index.php?main_page=product_info&cPath=1&products_id=12
Nella pagina puoi scaricare uno ZIP contenente la libreria ed uno sketch di esempio, dovrebbe fare al caso tuo.

leo72


il millis() l'ho sostituito con un confronto tra abs(now.second()-prev)>=1
e dovrebbe andare bene sempre e cmq...

Puoi fare un semplice

if (now.second()!=prev) {
  prev=now.second();
  ....
}
Se devi misurare solo 1 secondo, a te basta sapere che i secondi sono cambiati.

zioTonino


Stiamo parlando di un orario impostato tramite un'interfaccia oppure dello sketch compilato con le costanti __DATE__ e __TIME__?
Queste prendono semplicemente l'orario di sistema e lo memorizzano nello sketch. Se resettassi il tuo circuito fra 1 mese, ripartirebbe con l'orario e la data in cui hai compilato il programma.

Di esempi ce ne sono diversi. Io ho questo shield:
http://www.nuelectronics.com/estore/index.php?main_page=product_info&cPath=1&products_id=12
Nella pagina puoi scaricare uno ZIP contenente la libreria ed uno sketch di esempio, dovrebbe fare al caso tuo.


ciao, vado con le costanti date e time!
per il menu grazie... ma sembra molto più complesso di quel che pensavo...

leo72


ciao, vado con le costanti date e time!

Quindi non fai altro che memorizzare nello sketch l'orario del computer al momento della compilazione. E' normale che resettando l'Arduino lo sketch riparta con l'orario preimpostato.

Quote

per il menu grazie... ma sembra molto più complesso di quel che pensavo...

Eh, i menu non sono semplici.

Go Up