Capitolo.001

Transcript

Capitolo.001
Corso di BASCOM AVR - ( 1 )
Corso Teorico/Pratico di programmazione in BASCOM AVR.
Autore: DAMINO Salvatore.
PREFAZIONE.
Lo scopo di questo corso è quello di fornire le fondamentali nozioni di
programmazione, abbinate alle indispensabili informazioni tecniche sull'hardware,
necessarie per poter maneggiare, e gestire adeguatamente, le schedine a micro
disponibili sul mercato.
A questo fine vengono definiti alcuni elementi hardware, di base, tramite i quali
poter intraprendere le varie sperimentazioni.
INTRODUZIONE.
Come linguaggio di programmazione abbiamo scelto il BASIC. Questo linguaggio
oltre ad essere molto diffuso, per chi non lo conoscesse, è anche decisamente
molto semplice da apprendere. In particolare abbiamo scelto un ottimo
Compilatore che risponde al nome di BASCOM AVR. Questo compilatore è
adatto alle numerosissime CPU con Core AVR ed ha il vantaggio di essere
disponibile, nella versione Demo, Gratuitamente. Questa versione è veramente
molto completa ed è in grado di generare fino ad un massimo di 4K di codice.
Questa limitazione, per il ns. scopo, non è molto invalidante in quanto, vista
l'efficienza di questo compilatore, con 4K di codice è possibile creare dei
programmi anche di una buona complessità e che sono di certo adatti per lo scopo
didattico che ci proponiamo. D'altro canto se un utente avesse bisogno di
generare dei programmi più lunghi, e più complessi, è sufficiente che acquisti la
versione completa con cui potrà generare fino a 256K di codice.
Per chi volesse approfondire la conoscenza sul BASIC, per conoscerne le
caratteristiche o la sintassi, esistono degli ottimi testi divulgativi. Inoltre il
BASCOM AVR dispone di un completo manuale consultabile direttamente
dall’aiuto in linea del Compilatore.
Vi ricordo che è comunque disponibile, sul sito della grifo® in formato PDF e in
lingua Italiana, anche un Manuale che descrive sinteticamente ogni singola
istruzione. Per chi non ha difficoltà a seguire l'aiuto in linea, che è in Inglese, li
consigliamo in quanto può essere molto utile consultarlo.
1
HARDWARE Necessario.
Per potere realizzare degli esempi facilmente fruibili è necessario definire anche
degli elementi hardware univoci a cui la sperimentazione dovrà fare riferimento.
A questo fine sono stati scelti alcuni elementi quali il Mini Modulo di CPU
denominato GMM AM08, su cui ruoteranno tutti i progetti, e la GMM TST3 come
piattaforma su cui effettuare le sperimentazioni.
In alternativa, per chi ha il piacere di gestire dell'hardware, ci si può dotare di una
Breadboard su cui prototipare facilmente i circuiti proposti oppure, montare su
una Scheda Millefori, i vari progetti.
I progetti sono descritti con difficoltà gradualmente crescente in modo da
accompagnare il lettore durante il suo apprendimento.
2
Mini Modulo GMM AM08.
Questo Mini Modulo, con un Pin-Out da 2 8 pin, è basato su una CPU della
Atmel con una FLASH interna da 8K; 1K di RAM; 512 Byte di EEPROM; 2 3
linee di I/O; ecc. ha a bordo tutto quanto serve per un suo corretto
funzionamento.
Uno dei vantaggi nell'utilizzo di questo Mini Modulo è, tra gli altri, quello di non
avere bisogno di nessun Programmatore esterno. Infatti questi possiede,
internamente, un apposito programma, chiamato Bootloader e della lunghezza di
2K, tramite il quale, e con l’uso di un programma Gratuito scaricabile dalla
grifo®, è possibile effettuare la programmazione, e la cancellazione, della
FLASH.
Questa è una notevole comodità che consente, utilizzando la sola linea seriale del
PC, di poter programmare e riprogrammare il Chip un numero enorme di volte.
3
Scheda di Sperimentazione GMM TST3.
Questa scheda, munita di 2 zoccoli da 40 pin è nata per poter sperimentare i vari
Mini Moduli, da 2 8 e da 4 0 pin, presenti nella produzione
grifo®.
Essa viene fornita con una serie di esempi per i vari Mini Moduli disponibili in
modo che si possa rapidamente apprendere l'utilizzo degli stessi.
La prima cosa da fare per il corretto utilizzo di questa scheda è connetterla,
tramite la linea seriale, ad un PC. Il cavo di comunicazione potrà essere acquistato
oppure realizzato seguendo le seguenti indicazioni.
Per il collegamento sono sufficienti solo 3 fili come appare dalla figura.
4
Linguaggio BASIC.
Il linguaggio BASIC (è un acronimo per Beginner's All purpose Symbolic
Instruction Code che si traduce come "Codice di Istruzioni Simboliche di Uso
Generale per principianti") è stato sviluppato nel 1963 da Kemeny e Kurtz. Il
primo programma in BASIC girò il 1º maggio 1964 alle ore 4,00.
Il programma in BASIC è generato da un apposito programma di Editor che
consente di scrivere i vari Comandi (Statements) ed Istruzioni scrivendoli, in
modo ordinato, da sinistra a destra e dall'Alto in Basso come in una normale
lettera.
I primi BASIC erano del tipo Interprete, vale a dire che ogni linea di programma
era Interpretata ed Eseguita immediatamente. Questo tipo di soluzione ha
molti vantaggi ma ha il difetto di essere intrinsecamente molto lenta in
esecuzione. Per questa ragione, al fine di incrementare la velocità di esecuzione,
sono stati ideati i Compilatori BASIC. L'avvento di questa tecnica ha
incrementato di moltissime volte la velocità di esecuzione consentendo di
affrontare facilmente anche fenomeni molto veloci. Il BASCOM AVR fa parte di
quest'ultima efficiente categoria.
5
Elementi Componenti di un Programma.
Normalmente le parti componenti, sempre presenti in un programma BASIC, sono:
Definizioni =
sono tutte le informazioni preliminari e le associazioni
necessarie al resto del programma più le eventuali
configurazioni o direttive del compilatore.
Nel caso del BASCOM A V R tra le definizioni si ricorda
l’indispensabile file .DAT che contiene tutte le informazioni sul
microcontrollore usato.
Dichiarazioni =
sono le dichiarazioni delle strutture dati (Costanti, Variabili)
delle procedure e delle funzioni usate nel programma.
Istruzioni =
sono il vero e proprio programma e decidono le funzioni svolte;
in questa parte sono usate le istruzioni (o Statement) del
BASIC, gli operatori, le chiamate a procedure e funzioni con i
relativi parametri, le strutture dati, i commenti, ecc.
Inoltre è spesso presente un’ulteriore componente definito:
Cartiglio =
è la parte iniziale del programma e coincide con un lungo
commento in cui vengono brevemente elencate le
caratteristiche del programma, utili ad identificarlo, descriverlo
ed a farlo funzionare.
6
BASCOM AVR - Caratteristiche
Generali.
- BASIC Strutturato con possibilità di Etichette (Labels).
- Programmazione strutturata tramite:
IF-THEN-ELSE-END IF, DO-LOOP, WHILE-WEND, SELECT- CASE.
- Codice Macchina veloce invece del Codice Interpretato
- I nomi delle Variabili e delle Etichette possono raggiungere i 32 caratteri.
- Variabili di tipo:
Bit, Byte, Integer, Word, Long, Single, Double e String
- Variabili sia globali che locali.
- Compilatore per lavorare con numerosi µP della famiglia AVR.
- Statements (Istruzioni) ad alta compatibilità con Microsoft VB/QB.
- Direttive ed Istruzioni speciali per la gestione di Display LCD alfanumerici,
Componenti I2C BUS, 1WIRE, SPI, tasiere PC, tastiere a
matrice,.ricetrasmettitori ad infrarossi, display LCD grafici, linee seriali
software, schede di memoria, ecc.
- Funzioni e procedure con completo passaggio di parametri.
- Emulatore di terminale integrato con possibilità di Download.
- Simulatore incorporato per test di funzionamento.
- Supporto di numerosi Programmatori sia interni che esterni.
- Editor con codifica a colori dei diversi componenti del programma.
- Aiuti Contestuali in linea.
- Disponibilità di librerie aggiuntive che ne espandono la funzionalità.
7
Il BASCOM-AVR supporta le seguenti Istruzioni (Statement)
1WIRE
Consentono di comunicare con i componenti Dallas con interfaccia 1wire.
1WRESET , 1WREAD , 1WWRITE , 1WSEARCHFIRST , 1WSEARCHNEXT , 1WVERIFY ,
1WIRECOUNT
Strutture, Decisioni, Cicli, Controllo di flusso
Eseguono una parte del programma a seconda di una condizione che può essere
vera o falsa oppure variano il flusso dell’esecuzione.
IF-THEN-ELSE-END IF , WHILE-WEND , ELSE , DO-LOOP , UNTIL, EXIT DO , EXIT
WHILE , SELECT CASE-END SELECT , FOR-NEXT, TO, DOWNTO , STEP , EXIT FOR,
ON...GOTO/GOSUB , CALL , GOSUB , GOTO , EXIT SUB , EXIT FUNCTION , END SUB ,
RETURN , STOP , END.
Configurazione
I comandi di configurazione inizializzano l’hardware allo stato desiderato.
CONFIG , CONFIG ACI , CONFIG ADC , CONFIG BCCARD , CONFIG CLOCK , CONFIG
COM1 , CONFIG COM2 , CONFIG DATE , CONFIG DMXSLAVE , CONFIG PS2EMU ,
CONFIG ATEMU , CONFIG I2CSLAVE , CONFIG INPUT , CONFIG GRAPHLCD , CONFIG
KEYBOARD , CONFIG TIMER0 , CONFIG TIMER1 , CONFIG LCDBUS , CONFIG
LCDMODE , CONFIG 1WIRE , CONFIG LCD , CONFIG SERIALOUT , CONFIG SERIALIN ,
CONFIG SPI , CONFIG LCDPIN , CONFIG SDA , CONFIG SCL , CONFIG DEBOUNCE ,
CONFIG WATCHDOG , CONFIG PORT , COUNTER0 , COUNTER1 , CONFIG TCPIP ,
CONFIG TWISLAVE , CONFIG SINGLE , CONFIG X10 , CONFIG XRAM , CONFIG USB
Conversione
Convertono un dato da un formato ad un altro.
BCD , GRAY2BIN , BIN2GRAY , BIN , MAKEBCD , MAKEDEC , MAKEINT , FORMAT ,
FUSING , BINVAL , CRC8 , CRC16 , CRC16UNI , CRC32 , HIGH , HIGHW , LOW
Tempo ( Data ed Ora)
Gestiscono la data e l’ora ed il tempo trascorso.
DATE , TIME , DATE$ , TIME$ , DAYOFWEEK , DAYOFYEAR , SECOFDAY ,
SECELAPSED , SYSDAY , SYSSEC , SYSSECELAPSED
Ritardo
Ritardano l’esecuzione del programma per un tempo specificato.
WAIT , WAITMS , WAITUS , DELAY
8
DIRETTIVE
Sono istruzioni speciali per il compilatore e possono rimpiazzare i settaggi dell’IDE.
$ASM , $BAUD , $BAUD1 , $BGF , $BOOT , $CRYSTAL , $DATA , $DBG ,
$DEFAULT , $EEPLEAVE , $EEPROM , $EEPROMHEX , $EXTERNAL , $HWSTACK ,
$INC , $INCLUDE , $INITMICRO , $LCD , $LCDRS , $LCDPUTCTRL , $LCDPUTDATA ,
$LCDVFO , $LIB , $LOADER , $LOADERSIZE , $MAP , $NOCOMPILE , $NOINIT ,
$NORAMCLEAR , $PROJECTTIME , $PROG , $PROGRAMMER , $REGFILE ,
$RESOURCE , $ROMSTART $SERIALINPUT , $SERIALINPUT1 , $SERIALINPUT2LCD ,
$SERIALOUTPUT , $SERIALOUTPUT1 , $SIM , $SWSTACK , $TIMEOUT , $TINY ,
$WAITSTATE , $XRAMSIZE , $XRAMSTART , $XA
FILE
Le istruzioni per files possono essere usate con AVR-DOS: il sistema operativo con
dischi.
BSAVE , BLOAD , GET , VER , DISKFREE , DIR , DriveReset , DriveInit , LINE INPUT ,
INITFILESYSTEM , EOF , WRITE , FLUSH , FREEFILE , FILEATTR , FILEDATE , FILETIME
, FILEDATETIME , FILELEN , SEEK , KILL , DriveGetIdentity , DriveWriteSector ,
DriveReadSector, LOC , LOF , PUT , OPEN , CLOSE
Display LCD Alfanumerico
Le istruzioni per il testo su LCD lavorano con i normali display alfanumerici.
HOME , CURSOR , UPPERLINE , THIRDLINE , INITLCD , LOWERLINE , LCD , LCDAT ,
FOURTHLINE , DISPLAY , LCDCONTRAST , LOCATE , SHIFTCURSOR , DEFLCDCHAR ,
SHIFTLCD , CLS
Display LCD Grafico
Le istruzioni per LCD grafico estendono quelle per i normali display alfanumerici.
GLCDCMD , GLCDDATA , SETFONT , LINE , PSET , SHOWPIC , SHOWPICE , CIRCLE ,
BOX
I2C BUS
Queste istruzioni consentono di comunicare con dispositivi in I2C BUS con
l’interfaccia hardware TWI o con un’interfaccia emulata via software.
I2CINIT , I2CRECEIVE , I2CSEND , I2CSTART, I2CSTOP, I2CRBYTE, I2CWBYTE
Input, Output
Istruzioni associate ai pins di I/O ed ai Port del microcontrollore.
ALIAS , BITS , BITWAIT , TOGGLE , RESET , SET , SHIFTIN , SHIFTOUT , DEBOUNCE ,
PULSEIN , PULSEOUT
9
Microcontrollore
Istruzioni dedicate al microcontrollore.
IDLE , POWERDOWN , POWERSAVE , ON INTERRUPT , ENABLE , DISABLE , START ,
VERSION , CLOCKDIVISION , CRYSTAL
MEMORIE
Istruzioni che leggono e scrivono le memorie SRAM , EEPROM E FLASH.
ADR , ADR2 , WRITEEEPROM , CPEEK , CPEEKH , PEEK , POKE , OUT , READEEPROM
, DATA , INP , READ , RESTORE , LOOKDOWN , LOOKUP , LOOKUPSTR , CPEEKH ,
LOAD , LOADADR , LOADLABEL , LOADWORDADR , MEMCOPY
Controllo Remoto ad Infrarossi
Mandano e ricevono comandi ad infrarossi per un controllo remoto.
RC5SEND , RC6SEND , GETRC5 , SONYSEND
RS 232 o Console
Istruzioni che gestiscono la comunicazione seriale tramite l’UART hardware od
emulata via software. Tali seriali possono essere usate come console seriale.
BAUD , BAUD1 , BUFSPACE , CLEAR , ECHO , WAITKEY , ISCHARWAITING , INKEY ,
INPUTBIN , INPUTHEX , INPUT , PRINT , PRINTBIN , SERIN , SEROUT , SPC , OPEN ,
CLOSE , MAKEMODBUS
SPI
Queste istruzioni consentono di comunicare con dispositivi in SPI con l’interfaccia
hardware del microcontrollore o con un’interfaccia emulata via software.
SPIIN , SPIINIT , SPIMOVE , SPIOUT
STRING
Istruzioni usate per manipolare stringhe.
ASC , UCASE , LCASE , TRIM , SPLIT , LTRIM , INSTR , SPACE , STRING , RTRIM ,
LEFT , LEN , MID , RIGHT , VAL , STR , CHR , CHECKSUM , HEX , HEXVAL , QUOTE
TCP/IP
Le istruzioni TCP/IP possono essere usate con i moduli W3100/IIM7000/IIM7010:
BASE64DEC , BASE64ENC , IP2STR , UDPREAD , UDPWRITE , UDPWRITESTR ,
TCPWRITE , TCPWRITESTR , TCPREAD , GETDSTIP , GETDSTPORT , SOCKETSTAT ,
SOCKETCONNECT , SOCKETLISTEN , GETSOCKET , CLOSESOCKET , SETTCP ,
GETTCPREGS , SETTCPREGS , SETIPPROTOCOL , TCPCHECKSUM
10
Matematiche, Logiche, Trigonometriche
Istruzioni per le principali operazioni matematiche logiche e trigonometriche su
variabili e valori numerici.
+ , * , - , / , \ , ^ , < , > , >= , <= , = , <> , ABS , ACOS , AND , ASIN , ATN , ATN2
, EXP , RAD2DEG , FRAC , TAN , TANH , COS , COSH , LOG , LOG10 , ROUND , INT ,
MAX , MIN , NOT , SQR , SGN , OR, POWER , SIN , SINH , FIX , INCR , DECR ,
DEG2RAD , SHIFT , ROTATE , RND , XOR
Strutture DATI
Queste istruzioni dichiarano e gestiscono le strutture dati.
DIM , BIT, BYTE , INTEGER , WORD , LONG , SINGLE , DOUBLE , STRING , CONST ,
LOCAL , DEFBIT , DEFBYTE , DEFINT , DEFWORD , DEFLNG , DEFSNG , DEFBBL ,
BYVAL ,
VARIE
Queste istruzioni non rientrano in nessuno dei precedenti gruppi.
DBG , DECLARE FUNCTION , DEBUG , DECLARE SUB , DTMFOUT , EXIT , ENCODER ,
GETADC , GETKBD , GETATKBD , GETRC , POPALL , PS2MOUSEXY , PUSHALL ,
SENDSCAN , SENDSCANKBD , SOUND , STCHECK , SUB , SWAP , X10DETECT ,
X10SEND , READMAGCARD , REM , #IF , #ELSE , #ENDIF , READHITAG
11
Architettura del Compilatore BASCOM AVR
Il compilatore BASCOM AVR è un completo pacchetto di sviluppo che coprende
tutto quanto serve per poter generare, in modo molto efficiente, il Firmware di
gestione di un qualsiasi Hardware basato su una CPU con Core AVR.
I principali moduli che compongono il tools sono:
EDITOR.
E' un programma specializzato che consente di poter scrivere il programma di
gestione. Questo programma dispone di una serie di aiuti per semplificare le
operazioni di Editing. Tra questi aiuti c'è, ad esempio, la rappresentazione
Colorata che consente di riconoscere rapidamente i vari elementi del programma,
l’identazione automatica, l’allineamento dei commenti a fine riga, il commento di
parti del programma, l’aggiunta di marcatori che consentono di muoversi
rapidamente nei programmi lunghi, ecc.
COMPILATORE.
Questa sezione è incaricata, partendo da quanto scritto nel programma Editato,
di generare un programma eseguibile dalla CPU.
Una volta compilato il programma si può controllare che non siano stati segnalati
degli errori e quindi si può passare alle fasi successive.
SIMULATORE.
Consente di verificare il corretto funzionamento di un programma compilato, o
parte dello stesso, eseguendolo sul PC che simula la CPU AVR. In questo modo si
possono effettuare prove preliminari senza dover salvare il programma compilato
sulla FLASH della scheda hardware in uso.
Emulatore TERMINALE.
Permette il colloquio, tra il PC e la scheda, utilizzando la linea di comunicazione
seriale di bordo in RS 2 3 2. Tutte le caratteristiche del protocollo di
comunicazione, come ad esempio il Baud Rate, sono settabili un'apposita finestra
dello stesso Emulatore Terminale.
UTILITA' ed OPZIONI
Tra i componenti del BASCOM AVR si ricordano anche alcune utilità relative alla
gestione di display, alla conversione di formati, alla gestione di librerie, ecc. Inoltre
una ricca serie di opzioni definiti da utente, consentono di impostare numerose
funzionalità sia dello stesso BASCOM AVR che di eventuali altri programmi
esterni da lui lanciati. Ad esempio con le opzioni si definiscono colori ed
informazioni rappresentate caratteristiche di stampa uso di programmatori, modi
di simulazione, si aggiungono librerie e funzioni, si aprono documentazioni e
diagrammi sul microcontrollore, ecc.
12
FILE tipo DAT
Per poter lavorare con il BASCOM AVR una delle prime operazioni da eseguire è
cercare, o generare, un File che descriva tutte le risorse della CPU che si intende
adoperare. Molti di questi FILE.DAT sono forniti con il compilatore, così come
quello per operare con il GMM AM08 che prende il nome di M8DEF.DAT. Per
completezza tale file può essere scaricato anche dal ns. sito.
FILE di configurazione
Al fine di semplificare l’uso il BASCOM AVR genera un file di configurazione in cui
memorizza tutte le impostazioni che lo riguardano. Queste configurazioni
coincidono con le impostazioni effettuate nelle numerose finestre dell’IDE e
possono essere anche definite direttamente dall’utente, così come indicato nel
cartiglio del programma. In dettaglio il file di configurazione ha lo stesso nome del
sorgente ma estensione .CFG; se il file esiste il BASCOM AVR vi preleva tutte le
configurazioni in fase di apertura del programma e viceversa. Inoltre in fase di
salvataggio del programma il file di configurazione viene automaticamente
generato od aggiornato.
Programma AVR Bootloader grifo®.
Pur non facendo parte direttamente dell'architettura del compilatore è comunque
un elemento fondamentale per tutti i Mini Moduli AVR. Alludo al programma
che consente di potere programmare la FLASH e la EEPROM della CPU senza
bisogno di un programmatore esterno.
Questo programma è fornito dalla grifo®.e serve per salvare il codice da eseguire
nella FLASH o dei dati nella EEPROM interna della CPU. Normalmente il
programma generato dal compilatore BASCOM viene spedito alla GMM AM08
tramite l’AVR Bootloader grifo® che lo salva in modo permanente sul Mini
Modulo. Tutte le istruzioni d’uso dell’AVR Bootloader grifo®.sono disponibili
nel manuale tecnico della scheda e nel seguente capitolo del corso.
13
Esempio.001. Gestione LED e Tasto.
Definizioni:
$regfile ; $romstart ; $crystal ; $hwstack ; $swstack ; $framesize ; $map ; Alias
Dichiarazioni:
Dim …. As Bit
Istruzioni:
Do ; Loop ; ' ; End
Operatori:
=
Questo programma esegue una semplice operazione di I/O utilizzando i due tasti
ed i due LED disponibili sulla GMM TST3. Gli schemi di riferimento sono quelli di
pag. 43-45 (da B-1 a B-3) del manuale GMM TST3.
- Le linee di I/O interessate sono:
- pin 1 3 dello zoccolo Z1 su GMM TST3 ( = pin 7 del GMM AM08) collegato
ad L3 di colore Verde tramite R7 ed a tasto T2 Verde;
- pin 1 2 dello zoccolo Z1 su GMM TST3 ( = pin 6 del GMM AM08) collegato
ad L2 di colore Rosso tramite R6 ed a tasto T1 Rosso.
- Il programma gestisce la linea del pin 6 come ingresso e la linea del pin 7 come
uscita.
- All'atto dell'accensione i due LED sono spenti.
- Premendo il tasto T1, oltre ad accendersi il LED L2, in quanto elettricamente
collegato, si accenderà anche il LED L3.
- Rilasciando il tasto T1 si spegneranno sia L2 che L3.
- Comunicazione a 19.200 Baud, 8 Bit x chr, 1 Stop bit, Nessuna parità.
Di seguito potete esaminare lo schema elettrico essenziale che si deve realizzare, su una
Breadboard o su una Scheda Millefori, per usare il descritto Esempio.001.
Schema Elettrico Usato nel Programma.
14
Sviluppo del Programma.
Approfitto dell'occasione per descrivere, anche se in modo estremamente
sintetico, quali soni i principali elementi che compongono un normale programma di
gestione. C'è da sottolineare che, anche se il programma è molto corto, come nel
presente caso, è un'ottima abitudine che lo stesso abbia tutti gli elementi indicati.
Soprattutto se pensate di dedicarvi con continuità a questa attività vi consiglio di
documentare al massimo tutti i vari passaggi e le decisioni adottate in quanto,
quello che al momento risulta estremamente chiaro, in un arco di tempo
relativamente breve può diventare di difficile comprensione se non addirittura
incomprensibile.
Nel proseguo di questo Mini Corso Pratico vi consigliamo, ogni volta che viene
introdotto qualche cosa di nuovo, come una nuova Istruzione (Statement) od
altro, di consultare l'help in linea del BASCOM AVR. Seguendo questo consiglio vi
accorgerete che, in poco tempo, comincerete ad avere una solida conoscenza del
linguaggio.
Di seguito elenchiamo i vari elementi che è opportuno inserire in un programma.
CARTIGLIO.
E' collocato all'inizio del listato ed inizia sempre con un carattere di "Apostrofo".
Il suo scopo è quello di indicare tutte le informazioni utili ad identificare il
programma.
Normalmente, per consuetudine, questa parte è racchiusa in una cornice ed è
composta da un titolo con tutti i dati sul nome del programma; dati relativi alla
versione del compilatore; tipo di Hardware su cui è possibile far girare il
programma; Nome della società e nome dello sviluppatore del programma.
Descrizione Del Programma.
Sempre preceduto da un Apostrofo viene sinteticamente descritta la funzionalità
del programma. Vengono inoltre indicati gli elementi Hardware che sono coinvolti
dallo stesso programma.
Configurazioni IDE.
Vengono indicate le impostazioni essenziali che occorre effettuare nell'Ambiente
di Sviluppo Integrato (IDE) del BASCOM AVR per usare correttamente il
programma.
15
Direttive del Compilatore.
Sono elencate tutte le Direttive necessarie al compilatore. Esse includono il file
tipo .DAT da utilizzare; Indirizzo dell'inizio del Codice in FLASH; Indirizzo
dell'inizio dei Dati in RAM interna; ecc.
DEFINIZIONI
Vengono definite, con precisione, le risorse usate dal programma. Per ogni risorsa,
come ad esempio un Tasto oppure un LED, viene indicato il nome ed a chi è
associato o collegato.
Nell'Esempio.001 sono indicati i piedini del microcontrollore collegati al tasto T 1
ed al LED L3 e quindi i bit dei registri per acquisire o settare gli stessi segnali.
Dichiarazioni Costanti
Vengono dichiarate le Costanti adoperate nel programma di gestione, assieme al
loro valore.
In questo esempio non ci sono Costanti.
Dichiarazioni Variabili
Vengono Dichiarate le Variabili che devono essere adoperate nel programma di
gestione. In questo caso si tratta della Variabile Booleana T1stat che contiene
lo stato del pulsante T1.
Dichiarazioni Procedure
Vengono dichiarate tutte le Procedure e Funzioni previste nel programma di
gestione, al fine di migliorarne la leggibilità e ridurne le dimensioni.
In questo esempio non ci sono Procedure.
PROGRAMMA PRINCIPALE
Il programma inizia con un Main e termina con un End. Nel mezzo ci sono tutte le
istruzioni e molti dei precedenti elementi (come le Variabili, Costanti, Operatori,
Procedure, ecc.) che stabiliscono il funzionamento reale del programma.
Il programma, come prima operazione, Inizializza la linea collegata al tasto T 1
come ingresso digitale e quella collegata al LED L3 come uscita digitale, a livello
alto.
Fatto questo vengono introdotti due nuovi Statements denominati uno Do e
l'altro Loop.
16
Il programma, in questo caso, esegue quanto si trova tra Do e Loop all'infinito e
più precisamente;
- Assegna alla variabile T1stat lo stato del tasto T1.
- Setta LED L3 con lo stato del tasto T1. Questo significa che se il tasto T1 è
rilasciato il LED L3 sarà spento. Se il tasto T1 è premuto allora il LED L3 sarà
illuminato.
Il programma appena descritto può essere aperto, esaminato e compilato
direttamente con l’Editor del BASCOM A V R , semplicemente effettuando i
seguenti passi:
-
Verificare che il file di M8DEF.DAT descritto in precedenza sia già presente nella
cartella di installazione del BASCOM AVR:
\MCS Electronics\BASCOM-AVR\
e se non lo è copiarlo.
-
Eseguire il BASCOM AVR ed una volta entrati nel suo IDE, caricare il File
sorgente (con estensione .BAS), tramite il menu File | Open. Il file da caricare è
quello collegato al presente esempio, che prende il nome di
Corso_BASCOMAVR_001.BAS.
-
Aprire la finestra di configurazione del compilatore BASCOM AVR, tramite il
comando Option | Compiler | Chip, e verificare che le impostazioni riportate
nello stesso programma (vedi Configurazioni IDE) siano già effettuate e, se non
lo sono, effettuarle ed al termine confermare con il pulsante OK.
Tale configurazioni sono già effettuate se, come descritto nella documentazione
del BASCOM AVR, assieme al file sorgente è stato scaricato da internet il file di
configurazione Corso_BASCOMAVR_001.CFG.
-
Compilare il sorgente del programma d’esempio con una semplice pressione del
tasto rapido F 7, oppure selezionare il comando Program | Compile, e
verificare che non avvengano errori. In questo modo si deve ottenere il file .HEX,
identico a quello presente nel corso.
-
La compilazione impiega un tempo che dipende dal P C usato; in ogni caso si
deve attendere il completamento di entrambe le passate opportunamente
segnalate da una finestra di stato che compare durante la stessa compilazione.
Ricordando che la seconda passata è molto veloce e può risultare non leggibile, al
termine si deve verificare che non siano riportati errori nella parte bassa dell'IDE.
-
Il file HEX generato dal compilatore coincide con il codice eseguibile per il
microcontrollore, codificato con un formato ridondante, che ne assicura la
validità. In questo corso non si approfondisce questa trattazione, ma il lettore
interessato può trovare un’esauriente documentazione in internet.
17

Documenti analoghi

bascom avr ide

bascom avr ide $ASM , $BAUD , $BAUD1 , $BIGSTRINGS , $BGF , $BOOT , $CRYSTAL , $DATA , $DBG , $DEFAULT , $EEPLEAVE , $EEPROM , $EEPROMHEX , $EEPROMSIZE, $EXTERNAL , $HWSTACK , $INC , $INCLUDE , $INITMICRO , $LCD ...

Dettagli

Accesso all` IDE del Bascom

Accesso all` IDE del Bascom Di facile intuizione – Sintassi dei comandi tra il “C standard” e il “BASIC” Linguaggio ad esecuzione sequenziale e strutturato con subroutine e funzioni Velocità nella produzione di firmware robus...

Dettagli