"RISOLTO" informazioni software su arduino nano

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 :

           void setup() {
                              
                                 pinMode(9, OUTPUT);     
                                 digitalWrite(9, HIGH);


                         }
                   
                         void loop() {
                         }

“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:

     void setup() {
          digitalWrite(9, HIGH);
          pinMode(9, OUTPUT);     
     }

>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

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

GPB01, al prossimo post starò più attento.

Grazie.

Ti rimando al paragrafo 14.2.3 del datasheet del 328.

gpb01:
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 </> :wink:

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

Secondi sembra eccessivo anche a me, millisecondi semmai

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

DDRB= 0x02;
PORTB=0x02;

Non l ho provato ma dovrebbe essere giusto

aster94: Secondi sembra eccessivo anche a me, millisecondi semmai

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

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

Ho modificato il testo. Adesso, va bene?