' ********************************************************************** ' * File: Corso_BASCOMAVR_004.BAS * ' * Versione: 1.1 * ' * Data: 29.06.09 * ' * Ambiente sviluppo: Bascom-AVR Demo Ver. 1.11.9.1 + * ' + + AVR bootloader grifo(r) Ver. 1.2 * ' * Schede: GMM AM08 + GMM TST3 * ' * Sviluppato da: GRIFO(r) Italian Technology * ' * via Dell'Artigiano 8/6 * ' * 40016 S. Giorgio di Piano (BO) * ' * Tel. +39 051 892052 Fax. +39 051 893661 * ' * http://www.grifo.com http://www.grifo.it * ' * Autore: Gianluca Angelini * ' ********************************************************************** ' Programma di esempio 004 del corso BASCOM AVR. ' Esegue semplici operazioni di I/O digitale utilizzando il LED di bordo ' della GMM AM08. ' Il programma genera una base di tempo di un secondo con cui cambia stato ' al LED di attivitā DL1. La base dei tempi č generata con un ciclo calibrato. ' ' Istruzioni aggiunte: LOOP UNTIL, NOT. ' ' 29/06/09: Corso_BASCOMAVR_004.BAS - Ver 1.1 - By G.A. ' Prima versione. ' ' '*************************** Configurazioni IDE ******************************** ' NOTE: per usare correttamente questo programma demo, eseguire i seguenti ' punti: ' 1) Controllare la presenza del file M8DEF.DAT nella directory di ' installazione del BASCOM-AVR e se non disponibile copiarlo e dopo ' rilanciare l'IDE. ' 2) Nella finestra "Options | Compiler | Chip" impostare: ' Chip: m8def.dat ' XRAM: None ' HW Stack: 64 ' Soft Stack: 32 ' Framesize: 64 ' XRAM waitstate: disattivo ' External Access Enable: disattivo '********************** Direttive del compilatore ****************************** $regfile "M8DEF.DAT" ' File di definizione microcontrollore usato $romstart = &H0 ' Indirizzo inizio codice in FLASH $crystal = 7372800 ' Frequenza quarzo del microcontrollore $hwstack = 64 ' Spazio per stack hardware $swstack = 32 ' Spazio per stack software $framesize = 64 ' Spazio per frame $map ' Genera informazioni di debug '******************************* Definizioni *********************************** ' Le risorse usate dal programma sono collegate come illustrato nella seguente ' tabella: ' Risorsa pin Z1 GMM TST3 pin GMM AM08 Segnale uP ' LED DL1 18 12 PB5 , SCK Pindl1 Alias Portb.5 ' Bit con segnale d'uscita collegato a DL1 GMM AM08 '************************ Dichiarazioni costanti ******************************* '************************ Dichiarazioni variabili ****************************** Dim Dl1stat As Bit ' Variabile booleana con stato LED DL1 Dim Del As Long ' Variabile che conta cicli per ritardo '************************ Dichiarazioni procedure ****************************** '************************** Programma principale ******************************* Main: Ddrb.5 = 1 ' Inizializza segnale collegato a DL1 come uscita digitale alta Dl1stat = 1 ' Inizializza stato DL1 a disattivo Do ' Inizio ciclo infinito Dl1stat = Not Dl1stat ' Inverte variabile con stato DL1 Pindl1 = Dl1stat ' Setta LED DL1 con nuovo stato ' Effettua ritardo di 1 secondo: in un ciclo attende che la variabile Del, che conta i cicli per ritardo, ' raggiunga il valore 116000. Tale valore č calibrato sperimentalmente, ovvero stabilito tramite prove Del = 0 ' Azzera contatore cicli effettuati per ritardo Do ' Inizio ciclo per ritardo di 1 secondo Del = Del + 1 ' Incrementa variabile che conta cicli per ritardo Loop Until Del > 116000 ' Fine ciclo per ritardo Loop ' Fine ciclo infinito End '************************ Fine programma principale ****************************