Eventuali errori di esecuzione su scheda arduino

Ciao a tutti,

nel muovere i primi passi con arduino, mi è sorto un dubbio; in genere quando si programma in C/C++ per realizzare semplici software di calcolo se negli input viene dato qualcosa di non atteso, il terminale mi risponde con degli errori a video che vanno all' infinito.
Volevo sapere da voi più esperti: è possibile che accada lo stesso ad arduino ? Cioè se magari invio su un pin che si aspetta un certo sengale ne invio un ' altro oppure effettuo un collegamento sbagliato per cui su un pin non c'è per esempio il segnale HIGH/LOW, il microcontrollore può rispondere madando la scheda in errore all' infinito oppure eseguire una parte di sketch non prevista?

Saluti

tech2019:
...il terminale mi risponde con degli errori a video che vanno all' infinito...

Intendi che il microcontrollore entra in una loop infinita? Certo che può farlo. Non tanto per segnali sui pin in ingresso, che sono sempre considerati o LOW o HIGH, quanto piuttosto per errori di programmazione. Oppure perché il programmatore VUOLE che il programma entri in una loop infinita.

  while (true) ;

  for ( ; ;  ) ;

Sono due esempi.

Ciao,
P.

Sicuramente saprai programmare in #C; allora faccio un esempio : in C scrivi un programma dove dici inserire una lettera della tastiera; dopo fai un if su una lettera specifica; se non inserisci la lettera specifica controllata dall' if(), e non dici al programma di non fare nulla se la lettera inserita non è quella da te specificata, il terminale reagisce con un errore all' infinito.... . Quindi volevo sapere se anche su arduino si può verificare una cosa del genere che magari su una potenziale applicazione può essere sfruttata da furbetti ... .

Arduino fa esattamente quanto il programma (ricorda che sei in monotask e non c'è un OS) gli dice di fare, nulla di piû, nulla di meno!

Guglielmo

tech2019:
in C scrivi un programma dove dici inserire una lettera della tastiera; dopo fai un if su una lettera specifica; se non inserisci la lettera specifica controllata dall' if(), e non dici al programma di non fare nulla se la lettera inserita non è quella da te specificata, il terminale reagisce con un errore all' infinito....

Questo non è normale, è un bug del programma piuttosto intrinseco nell'utilizzo di scanf(), che immagino sia quello che stai facendo tu. Un programma ben fatto dovrebbe accettare qualsiasi input, validarlo e dare un messaggio di errore se non è corretto, non andare in loop, ti pare?

Quando fai un programma, sei tu che decidi cosa succede, la CPU esegue quel che vuoi tu, né più, né meno, per cui sei tu che devi rilevare gli errori e stabilire cosa fare in questi casi.

PS: Non avevo letto il post di gpb, ma noto che abbiamo usato praticamente le stesse parole :D.

La domanda sottintesa era:"può uno sketch fatto apposta permettere, come nei pc, infettare un arduino?"

Quello che tradotto in modo orrendo sarebbe un codice malformato....

Ovviamente se fai un errore di programmazione o un errore concettuale nella progettazione dello sketch l' Arduino in date situazioni con certi segnali o dati in input puó andare in blocco o reagire in modo inaspettato.
Semplice esempi sono andare oltre l' indice di un array o uso errato di puntatori.

Devi scrivere lo sketch in modo corretto che prevede tutte le possibilitá di input possibili e immaginabili.

Ciao Uwe