SELECT
Il costrutto SELECT permette di selezionare una scelta in base ad un test effettuato in precedenza.
L'istruzione SELECT ha la seguente sintassi:
select case Condizione1
      case 0
          Istruzione1
      case 1
          Istruzione2
      case 2
          Istruzione3
      case 3
          Istruzione4
      case 4
          Istruzione5
      case 5
          Istruzione6
      case else
          Istruzione7
end select
In questo costrutto viene presa la condizione1 cercata nei casi (case), se esiste un paragone viene
eseguita l'istruzione associata.
Supponiamo che all'interno della variabile Condizione1 ci sia il numero 4, saranno ignorate tutte le
istruzioni precedenti e successive ed eseguita solo l'istruizone5.
Se non viene trovata nessuna corrispondenza sarà eseguita l'istruzione associata al case else ovvero
l'istruizione7.
In questo caso io ho inserito solo 5 casi per effettuare un test ma se ne possono aggiungere molti di
più, il numero varia dal PIC usato e dal compilatore, consultare la documentazione associata.
Questo tipo di costrutto può essere sostituito da una serie di IF per controllare delle porte ed
effettuare delle operazioni differenti in base al valore riscontrato.
Qui di seguito vi riporto un programma esempio per capire meglio il costrutto SELECT:
#CHIP 16F84, 4 'Tipo di PIC e frequenza
Dir PORTA IN 'Istruzioni viste più avanti
Dir PORTB OUT 'Istruzioni viste più avanti
DIM Valore as BYTE 'Variabile contatore
Label: 'Etichetta
Valore = PortA 'Prendo il valore degli interruttori
Select case Valore
case b'00000001' 'Controllo il primo interruttore
Portb = b'00001111' 'Accendo i primi 4 led
case b'00000010' 'Controllo il secondo interruttore
Portb = b'11110000' 'Accendo gli ultimi 4 led
case b'00000100' 'Controllo il terzo interruttore
Portb = b'00111100' 'Accendo i 4 led centrali
case else
PortB = b'11111111' 'Accendo tutti i led
end select
GOTO Label 'Salta all'etichetta
END 'Fine del programma
Posizionate tutti gli interruttori sul valore 0, e date alimentazione alla scheda test Micropic Trainer.
Spostando il primo interruttore sul valore 1 il primo case (case b'00000001') sarà vero e quindi
si accenderanno i primi 4 led, riportando il primo interruttore in posizione zero e spostando il
secondo interruttore sul valore 1 il secondo case (case b'00000010') sarà vero e quindi si
accenderanno gli ultimi 4 led, stesso discorso per il terzo interruttore.
Se la combinazione dei tasti non rientra nei casi sopra citati sarà eseguita l'istruzione nel select case
ovvero (PortB = b'11111111') l'accensione di tutti i diodi led.
Con questo costrutto è possibile controllare costantemente un gruppo di sensori ed effettuare delle
azioni in base ai loro stadi, vedremo meglio questo costrutto quando parleremo dei sensori
meccanici del microrobot Poor più avanti.
Aggiunta il link al corso Linux Uno su Udemy.
Aggiunto il tutorial per la realizzazionedi un Arcade con materiale di riciclo.