Go Down

Topic: "RISOLTO" informazioni software su arduino nano (Read 495 times) previous topic - next topic

nicholas13

Oct 13, 2016, 04:58 pm Last Edit: Oct 19, 2016, 11:02 am by nicholas13
Salve a tutti,
  ho notato, con un semplice sketch, che arduino prima che setti un pin(di output) ad 5V impiega diversi secondi. Io avrei l'esigenza di settare il pin(di output) a 5V subito dopo l'accensione.
Teoricamente, dovrei scrivere qualche riga in assembler e poi far partire il bootloader e tutto il resto.
Come posso fare? qualche suggerimento?

Grazie.


NB
       lo sketch :
     
           
Code: [Select]
           void setup() {
                              
                                 pinMode(9, OUTPUT);    
                                 digitalWrite(9, HIGH);


                         }
                  
                         void loop() {
                         }



SukkoPera

#1
Oct 13, 2016, 05:16 pm Last Edit: Oct 13, 2016, 05:17 pm by SukkoPera
"Diversi secondi" mi sembra un po' eccessivo, comunque se hai particolare "fretta" consiglio quanto segue:

1. Metti un resistore di pull-up tra il pin e Vcc, tipo 10k.

2. Per motivi lunghi da spiegare, nel setup() inverti le due istruzioni:

Code: [Select]
     void setup() {
          digitalWrite(9, HIGH);
          pinMode(9, OUTPUT);     
     }
"Code is read much more often than it is written, so plan accordingly. Design for readability."

Guida rapida a ESP8266: https://goo.gl/kzh62E

gpb01

>nicholas13:  ... prendi SEMPRE l'abitudine, in conformità al regolamento, punto 7, di racchiudere il codice tra i tag CODE che, in fase di edit, ti inserisce il bottone </> ... primo a sinistra.

Guglielmo
Search is Your friend ... or I am Your enemy !

nicholas13

Grazie sukkopera, il tuo consiglio ha funzionato.Un accenno al motivo delle inversioni delle istruzioni è possibile?

GPB01, al prossimo post starò più attento.


Grazie.

SukkoPera

"Code is read much more often than it is written, so plan accordingly. Design for readability."

Guida rapida a ESP8266: https://goo.gl/kzh62E

ExperimentUno

#5
Oct 15, 2016, 08:07 pm Last Edit: Oct 15, 2016, 08:13 pm by ExperimentUno
di racchiudere il codice tra i tag CODE
Che tra l'altro si fa sempre tempo a ritornarci e applicare la modifica, evidenziando la parte e quindi cliccare sul simbolo </> ;)

uwefed

#6
Oct 16, 2016, 12:16 am Last Edit: Oct 16, 2016, 12:20 am by uwefed
Arduino ha un bootloader che controlla dopo ogni reset e accensione se un PC collegato vuole caricare uno sketch. Per questo lo sketch parte solo dopo qualche secondo.

Per essere piú veloce puoi eliminare il bootloader ma devi caricare i sketch con un programmatore ISP. Lo sketch comunque avrá un piccolo ritardo fino a una 60ina di mS (dipende da impostazioni dul oscillatore) dopo che l' alimentazione sia arrivata alla tensione minima di esercizio.

Ciao Uwe

aster94

Secondi sembra eccessivo anche a me, millisecondi semmai

Se vuoi una cosa un pelino ancora piú rapida nel setup metti questo

Code: [Select]

DDRB= 0x02;
PORTB=0x02;


Non l ho provato ma dovrebbe essere giusto

uwefed

Secondi sembra eccessivo anche a me, millisecondi semmai

Se vuoi una cosa un pelino ancora piú rapida nel setup metti questo

Code: [Select]

DDRB= 0x02;
PORTB=0x02;


Non l ho provato ma dovrebbe essere giusto
I 2 secondi ci sono perché il Bootloader aspetta dopo un reset o un accensione quel tempo per determinare se un PC vogla caricargli uno sketch e solo poi viene eseguito lo sketch caricato.
Ciao Uwe

nicholas13

Ho modificato il testo.
Adesso, va bene?

Go Up