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
$ASM , $BAUD , $BAUD1 , $BIGSTRINGS , $BGF , $BOOT , $CRYSTAL , $DATA ,
$DBG , $DEFAULT , $EEPLEAVE , $EEPROM , $EEPROMHEX , $EEPROMSIZE,
$EXTERNAL , $HWSTACK , $INC , $INCLUDE , $INITMICRO , $LCD ...
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...