Programmare in mikroBasic | ||||||||||||||||||
Nei moduli aggiuntivi ci saranno soltanto procedure e/o funzioni, costanti e/o variabili. Il progetto viene salvato in un file con estensione .pbp contenente le informazioni sul progetto. I moduli vengono salvati in files con estensione .pbas contenenti il codice sorgente. Ogni modulo verrà compilato singolarmente e salvato in un file con estensione .mcl (non leggibile con un editor di testo). Se un utente vuole rendere disponibile a tutti un certo modulo, senza però rendere pubblico il codice sorgente, lo fa in questa maniera, allegando soltanto il file .mcl. I moduli compilati saranno collegati dal Linker per creare il risultato del progetto e cioè il file .hex. Quest'ultimo conterrà il codice macchina da inserire nel PIC con il programmatore.
Tutto quello che verrà inserito dopo la parola "implements" sarà invisibile agli altri moduli (dichiarazioni locali o private). I moduli sono blocchi di programma che eseguono qualcosa autonomamente ed indipendentemente dal tipo di programma in cui sono inclusi (ma devono comunque essere inclusi). Ma cosa si intende per blocco? Si intende "un contenitore" nel quale c'è tutto il necessario per eseguire una cosa. Per "tutto il necessario" si intendono variabili e costanti che saranno usate solo nel modulo. Il modulo, di solito, è un blocco indipendente da un progetto particolare. Un esempio sono le funzioni già predisposte (per LCD, EEPROM, Usart, ecc.) che sono dei moduli che vengono inclusi automaticamente da mikroBasic (tramite un modulo che si trova nella cartella \USES). Trovate un esempio di modulo nella cartella USES\P16\delays.pbas ma state attenti a non modificarlo. Il modulo per LCD, a sua volta, includerà il modulo "delay" per i vari ritardi richiesti , come si vede dai grafici sulla disposizione delle routine, nella memoria del PIC. Seguono due esempi di come potrebbero essere un modulo principale (program) ed un modulo secondario. program Prova_Moduli include "modulo1" 'include [inclusione di altri moduli] '******************************************************** '* Dichiarazioni (globali): '******************************************************** ' dichiarazioni di simboli 'symbol ... ' dichiarazioni di costanti 'const ... ' dichiarazioni di variabili dim beta as word ' dichiarazioni di procedure 'sub procedure nome_procedura(...) ' [dichiarazioni locali] ' ... 'end sub ' dichiarazioni di funzioni 'sub function nome_funzione(...) ' [dichiarazioni locali] ' ... 'end sub '******************************************************** '* Corpo del programma: '******************************************************** main: ' scrivete qui il vostro codice beta = somma(2,3) set_bit_var(portb,5,1) goto main End. module modulo1 'include [inclusione di altri moduli] '******************************************************** '* Interfaccia (globale): '******************************************************** ' dichiarazioni di simboli 'symbol ... ' dichiarazioni di costanti 'const ... ' dichiarazioni di variabili 'dim ... ' prototipi di procedure 'sub procedure nome_procedura(...) ' prototipi di funzioni 'sub function nome_funzione(...) '******************************************************** '* Implementazione: '******************************************************** implements ' dichiarazioni di costanti 'const ... ' dichiarazioni di variabili 'dim ... ' dichiarazioni di procedure sub procedure set_bit_var(dim byref var as byte, dim bit, bset as byte) ' var è una variabile (registro) qualsiasi alla quale si vuole settare un bit ' bit è il numero del bit da settare (da 0 a 7) ' bset è il valore 1 oppure zero ' [dichiarazioni locali] if bset = 1 then var.bit = 1 else var.bit = 0 end if end sub ' dichiarazioni di funzioni sub function somma(dim a, b as byte) as word ' [dichiarazioni locali] result = a + b end sub end.
Ultima modifica |
||||||||||||||||||