mars ha scritto:Quanto ai simulatori, per favore, buttali: servono solo a perdere tempo. E poi la "simulazione" non ha niente a che vedere con la programmazione.
Vorrei aggiungere una nota per chiarire che, nel contesto specifico del citato software Proteus 8, il termine "simulazione" potrebbe in realtà indicare la cosiddetta "emulazione virtuale", cioè l'abbinamento dell'hardware, rappresentato dallo schema elettrico, e del software, rappresentato dal file oggetto ricavato da una compilazione.
Il Proteus (
http://www.labcenter.com) è un software nato per disegnare schemi elettrici e circuiti stampati, ma come "furbata aggiuntiva" permette di sfruttare alcuni simboli grafici dei componenti anche in modo interattivo.
In breve, il simbolo grafico di un interruttore si può cliccare col mouse e azionare virtualmente nei due stati ON e OFF, osservando sia una modifica dell'aspetto sul video del computer, sia la produzione di un evento che il programma riconosce e accetta.
Lo stesso principio si può estendere al simbolo di un LED, che collegato all'interruttore di prima può apparire scuro o chiaro in base all'informazione di OFF oppure ON che il programma ricava in modo interattivo dai clic dei mouse.
Anche i tratti che rappresentano i collegamenti elettrici possono essere mostrati in colori diversi a seconda dello stato logico che assumono, apparendo ad esempio blu se sono a 0 e rossi se sono a 1.
Nel caso di un circuito con microcontroller, pulsanti, LED, moduli LCD alfanumerici o grafici, e tante altre diavolerie tecniche, è possibile disegnare lo schema elettrico e procedere poi nel modo usuale con lo "sbroglio" delle piste, ma è anche possibile aprire una finestra con dentro un compilatore C esterno, scrivere il programma, compilarlo, e poi "caricare virtualmente" il .HEX vero nello schema.
A questo punto, con un clic sull'icona che avvia l'emulazione, il firmware vero interagisce con lo schema e produce gli stessi effetti che produrrebbe nel circuito vero, facendo cambiare il colore dei fili in base agli stati logici via via assunti; facendo apparire accesi o spenti i LED e i motori; facendo vedere scritte nelle sagome dei display alfanumerici, e addirittura pilotando i singoli pixel dei display grafici in modo che si vedano le immagini.
Se lo schema usa tasti, pulsanti, commutatori, potenziometri, l'utente può cliccarci sopra e azionarli, ovviamente inviando al firmware le informazioni corrispondenti.
Se il micro gestisce una porta seriale, è possibile collegarne i pin ad un apposito simbolo che, in sede di emulazione, apre una finestrella dove l'utente digita i caratteri da inviare al firmware, e vede i caratteri prodotti dal firmware.
In uno degli esempi di utilizzo che accompagnano il dimostrativo gratuito del Proteus, si vede uno schema con un micro della famiglia 8051 destinato a realizzare un gioco di scacchi con display grafico sensibile al tocco.
Non sono un appassionato di scacchi, quindi non saprei dire se l'algoritmo sia capace o no di battere un giocatore umano medio, ma ho visto e verificato che l'emulazione virtuale permetterebbe di scrivere e debuggare tutto il firmware senza dover prima avere in mano la scheda vera.
Labcenter vende per poche sterline i simboli interattivi di quasi tutti i micro in commercio, compresi gli oggetti "grandi & complessi" con decine di piedini e numerose periferiche interne.
Con questo non voglio dire che l'emulazione virtuale copra ogni possibile caso d'impiego di un microcontroller,
ma secondo me l'idea è utile per poter almeno iniziare a scrivere il firmware senza dover attendere la disponibilità di una scheda assemblata.
Se sbagli perché non sai, commetti un errore. Se sbagli perché non vuoi sapere, ne commetti due.