In tutti i corsi per apprendere a programmare, il primo argomento svolto è: Come far lampeggiare dei led collegati ad una porta di uscita Faremo questo in tanti modi diversi, più o meno complicati.
Ogni istruzione può essere commentata. Il commento è separato dal programma col carattere ‘. Si possono inserire righe intere di commento, sempre precedute dal simbolo ‘
Le istruzioni vengono evidenziate sul video con diversi colori dal Proton+.
Il programma è eseguito indefinitamente ( è in loop ) Se si usa la versione LITE del software PROTON+, è consentita una sola istruzione per linea. Se si usa la versione intera, è possibile scrivere più istruzioni separate dal carattere : nella stessa linea
Uso di nomi simbolici per le variabili di programma: l’istruzione SYMBOL attribuisce un nome simbolico ai pin 0 e 7 della Porta B, in modo da poter usare questi nomi nel programma. Si fa così per poter usare delle denominazioni comode o più significative.
Varianti: Invece di ledrosso=1 si può scrivere: High ledrosso Per invertire lo stato di un led si può usare il comando Toggle: Toggle ledrosso Nel programma seguente, la stessa sequenza di accensione è ripetuta 5 volte. Per poter usare la variabile x, occorre dichiarare di che dimensioni è: se si dichiara come Byte significa che può assumere valori tra 0 e 255. Dimensioni di uso comune: Bit: 0 oppure 1 Byte: da 0 a 255 ( 2^8 valori) Word: da 0 a 65535 ( 2^16 valori).
"Spostamento" di un led.
Nella porta B viene scritto un valore pari alla potenza crescente di due: si vede un unico led acceso che "si sposta" da un pin al successivo. Questa soluzione è banale perché ripetitiva. Le soluzioni seguenti sono più efficienti. Tra le operazioni matematiche possibili con questo compilatore Basic, vi è lo SHIFT LEFT ( spostamento a sinistra dei bit di un valore ) indicato formalmente col simbolo <<. Con questo comando si ottiene lo scorrimento del led acceso. Per introdurre un altro tipo di ciclo condizionato, si usa il While... Wend Non tutti i compilatori però dispongono di comandi matematici particolari.
Dato che la moltiplicazione per 2 ottiene lo stesso risultato del comando SHIFT, si usa questo semplice calcolo e si visualizza sul PortB Monitor lo spostamento del led acceso. Naturalmente tutti i compilatori compiono tutte le operazioni matematiche semplici, perciò si può fare a meno di comandi dedicati.
Nell’esempio seguente si fa uso di uno strumento potente: la tabella di LOOKUP. Consiste in un elenco di valori memorizzati, selezionabili in base ad una variabile indice.
Nell’esempio, la tabella di LOOKUP contiene 8 valori, selezionati in base alla variabile passo. Cioè se passo = 0, allora la variabile valore vale 1 ; se passo = 7 allora valore = 128. Il numero assunto dalla variabile valore viene scritto via via nella PORTA B, accendendo un led alla volta. Tutte le variabili che appaiono nel programma, devono essere dichiarate col comando DIM.. In base alla dichiarazione BYTE, questa tabella di lookup può contenere fino a 256 numeri, ognuno compreso tra 0 e 255. In questo ultimo esempio, programma ledsei.bas, usando due tabelle di LookUp, una contenente i valori da scrivere nella Porta B, e una contenente i ritardi, è possibile creare una sequenza qualsiasi in cui i led, o i carichi, sono attivati da soli o insieme, a piacere, per un tempo a piacere. Nelle due tabelle, se la variabile pas vale 0, allora la variabile vai vale 129 e la variabile attendi vale 2000, e così via. Il valore assunto dalla variabile vai viene scritto nella PORTA B, accendendo uno o più led alla volta. Il valore assunto dalla variabile attendi determina il tempo di ritardo. Tutte le variabili che appaiono nel programma, devono essere dichiarate col comando DIM.
Dato che la variabile attendi supera 255, deve essere dichiarata come WORD, e si deve usare il comando LookUpL al posto di LookUp. (Prima parte) |