LEZIONE 47

SUB --- END SUB

L’ istruzione SUB permette di richiamare una subroutine, vediamo di cosa si tratta in dettaglio.
Nei programmi precedenti abbiamo usato il seguente blocco di istruzioni:

DESTRA:
PortA = b'00000110'           'Il microrobot va indietro
WAIT 1 sec           'Attende pochi secondi
PortA = b'00000101'           'Il microrobot gira a destra
WAIT 1 sec           'Attende pochi secondi
GOTO Ciclo           'Salta all'inizio del programma

Questo blocco si può sostituire con la seguente subroutine:

SUB SINISTRA
PortA = b'00000110'           'Il microrobot va indietro
WAIT 1 sec           'Attende pochi
PortA = b'00001010'           'Il microrobot va a destra
WAIT 1 sec           'Attende pochi
END SUB           'Salta da dove era partito

La differenza tra il primo blocco ed il secondo blocco sembra minima ma è sostanziale.
Nel primo caso l’istruzione GOTO Ciclo salta all’inizio del programma (vedere il programma per i sensori meccanici) nel secondo caso invece al comando END SUB il programma continua da dove si era fermato.

Facciamo qualche esempio per capire meglio, iniziamo con l’istruzione GOTO:

INIZIO
ISTRUZIONE1
ISTRUZIONE2
ISTRUZIONE3
GOTO AVANTI
ISTRUZIONE5
ISTRUZIONE6
FINE
AVANTI
ISTRUZIONE7
ISTRUZIONE8
GOTO INIZIO

In questo caso il programma eseguirà le istruzioni dalla 1 alla 3 poi eseguirà il salto all’etichetta AVANTI ed eseguirà le istruzioni 7 ed 8 poi tornerà all’inizio del programma.
In questo programma le istruzioni 5 e 6 non saranno mai eseguite.

LEZIONE 48
LEZIONE 46