Usare l'Ambiente Di Simulazione Integrata Con Il tore Keil - Elettronicamente

6
Elettronicamente.com La risorsa Italiana per l'elettronica e l'informatica applicata all'elettronica Sponsor |Home| |Registrazione| | Login| |Disclaimer| |Contattaci| |Guida| |FAQs| |Download| |Forum| |Links| |MySite| Cerca in Elettronicamente: Cerca I numeri di Elettronicamente.com: Iscritti: 13335 Risorse On-Line: 508 Links su siti di elettronica: 1304 Sei il visitatore numero 1268288 Login non eseguito Descrizione ID #768 Microcontroller Usare l'ambiente di Simulazione integrata con il compilatore Keil 07/10/2009 Questo tutorial mostra come usare l'ambiente di simulazione integrata nel compilatore Keil. E' una funzionalità utilissima per eseguir il debug del proprio software quando non si possiede l'hardware e/o quando non si è capaci di stimolare l'hardware con i segnali esterni desiderati. l'ambiente Keil è capace di: 1. simulare la porte RS232 e fornire un terminale virtuale 2. simulare le periferiche del microcontrollore (Timers, Contatori, PWM, etc..) 3. generare degli stimoli da applicare agli ingressi del microcontrollore per poter ferificare il comportamento del software (è possibile generare delle forme d'onda da applicare agli input del microcontrollore 4. molto altro ancora... Difficoltà: Voto: 2 Autore: boldinid HTML: File: No Crediti Virtuali: 1 Status: ONLINE Usare l'ambiente di Simulazione integrata con il compilatore Keil uVision Cos'è Keil uVision Non mi sento la persona più indicata per descrivere che cosa è veramente l'ambiente di sviluppo uVision di Keil, questo tutorial ha lo scopo di mostrarvi le mie esperienze. per maggiori dettagli sull'ambiente uVision Keil visitate il sito http://www.keil.com/ Keil uVision supporta una miriade di microcontrollori... Ovviamente per poter seguire questo tutorial dovete aver installato l'ambiente Keil, io uso la versione demo (limitata a compilare 2Kb): IDE-Version: µVision3 V3.80 Copyright (c) Keil Elektronik GmbH / Keil Software, Inc. 1995 - 2009 License Information: LIC=---- Tool Version Numbers: Toolchain: PK166 Prof. Develpers Kit Version: 6.17 Toolchain Path: C:\Keil\C166\BIN\ EC++ Compiler: EC166.Exe V1.09d C Compiler: C166.Exe V6.17 Assembler: A166.Exe V5.30 Linker/Locator: L166.Exe V5.25 Librarian: LIB166.Exe V4.26 Hex Converter: OH166.Exe V4.7a CPU DLL: S166.DLL V3.67 Dialog DLL: D167.DLL V2.50 Target DLL: BIN\DAS166.DLL V1.10 Dialog DLL: T167.DLL V2.49 Recentemente è uscita la versione 4 DEMO che può essere scaricatadal sito: http://www.keil.com /pr/article/1188.htm ESERCIZIO 1: simulare una seriale Come sempre io uso un microcontrollore Infineon, per questo esercizio scelgo il XC164 e segue gli stessi passi già illustrati nel tutorial "DAvE Generatore di Codice ", la sola differenza è che seleziono il micro XC164CM invece che il modello XE164: Engineering Base Nuova generazione di CAD Elettrico. Richiedi gratis il tuo demo! www.aucotec.com Corsi di Elettronica Diventa Esperto di Elettronica con SRE. Contattaci ora! www.ScuolaRadioElettra. Intel® Core™ vPro™ Aggiorna il PC con il nuovo processore Intel® Core™ vPro™ oggi! www.Intel.com/it/Vpro Conto Corrente Arancio per te 100€ di buoni acquisto Aprilo subito! web.ingdirect.it/promozion Progettazione Elettronica realizzazione master PCB marcatura CE, produzione e montaggio circuiti www.gecoelettronica.com Archiviazione a Norma L'archivio aziendale è in regola ? Sigear® - Sistema Gestione Archivi www.sigear.it Talend: Open Source ETL Prodotti ETL: Veloci, Completi, Facili ed Economici! Scarica gratis download.Talend.com/Op Studia On Line Hai poco tempo per studiare? Scegli la laurea online. Info ora www.formazioneadistanz Usare l'ambiente di Simulazione integrata con il compilatore Keil - Elet... http://www.elettronicamente.com/engine/default.asp?page=projectvie... 1 di 6 14/03/2011 23:23

Transcript of Usare l'Ambiente Di Simulazione Integrata Con Il tore Keil - Elettronicamente

Page 1: Usare l'Ambiente Di Simulazione Integrata Con Il tore Keil - Elettronicamente

Elettronicamente.comLa risorsa Italiana per l'elettronicae l'informatica applicata all'elettronica

Sponsor

|Home| |Registrazione| | Login| |Disclaimer| |Contattaci| |Guida|

|FAQs|

|Download| |Forum| |Links| |MySite|

Cerca in Elettronicamente:

Cerca

I numeri di Elettronicamente.com:

Iscritti: 13335

Risorse On-Line: 508

Links su siti di elettronica: 1304

Sei il visitatore numero 1268288

Login non eseguito

Descrizione

ID #768 Microcontroller

Usare l'ambiente di Simulazione integrata con il compilatore Keil 07/10/2009Questo tutorial mostra come usare l'ambiente di simulazione integrata nel

compilatore Keil. E' una funzionalità utilissima per eseguir il debug del

proprio software quando non si possiede l'hardware e/o quando non si è

capaci di stimolare l'hardware con i segnali esterni desiderati.

l'ambiente Keil è capace di:

1. simulare la porte RS232 e fornire un terminale virtuale

2. simulare le periferiche del microcontrollore (Timers, Contatori, PWM, etc..)

3. generare degli stimoli da applicare agli ingressi del microcontrollore per poter ferificare

il comportamento del software (è possibile generare delle forme d'onda da applicare agli

input del microcontrollore

4. molto altro ancora...

Difficoltà:

Voto:

2

Autore:

boldinid

HTML: File:

No

Crediti Virtuali:

1

Status:

ONLINE

Usare l'ambiente di Simulazione integrata con ilcompilatore Keil uVision

Cos'è Keil uVision

Non mi sento la persona più indicata per descrivere che cosa è veramente l'ambiente di sviluppouVision di Keil, questo tutorial ha lo scopo di mostrarvi le mie esperienze.

per maggiori dettagli sull'ambiente uVision Keil visitate il sito http://www.keil.com/

Keil uVision supporta una miriade di microcontrollori...Ovviamente per poter seguire questo tutorial dovete aver installato l'ambiente Keil, io uso laversione demo (limitata a compilare 2Kb):

IDE-Version:µVision3 V3.80Copyright (c) Keil Elektronik GmbH / Keil Software, Inc. 1995 - 2009License Information:LIC=----Tool Version Numbers:Toolchain: PK166 Prof. Develpers Kit Version: 6.17Toolchain Path: C:\Keil\C166\BIN\EC++ Compiler: EC166.Exe V1.09dC Compiler: C166.Exe V6.17Assembler: A166.Exe V5.30Linker/Locator: L166.Exe V5.25Librarian: LIB166.Exe V4.26Hex Converter: OH166.Exe V4.7aCPU DLL: S166.DLL V3.67Dialog DLL: D167.DLL V2.50Target DLL: BIN\DAS166.DLL V1.10Dialog DLL: T167.DLL V2.49

Recentemente è uscita la versione 4 DEMO che può essere scaricatadal sito: http://www.keil.com

/pr/article/1188.htm

ESERCIZIO 1: simulare una seriale

Come sempre io uso un microcontrollore Infineon, per questo esercizio scelgo il XC164 e seguegli stessi passi già illustrati nel tutorial "DAvE Generatore di Codice", la sola differenza è cheseleziono il micro XC164CM invece che il modello XE164:

Engineering

Base

Nuova

generazione di

CAD Elettrico.

Richiedi gratis il

tuo demo!www.aucotec.com

Corsi di

Elettronica

Diventa Esperto di

Elettronica con

SRE. Contattaci

ora!www.ScuolaRadioElettra.it

Intel® Core™

vPro™

Aggiorna il PC con

il nuovo

processore Intel®

Core™ vPro™

oggi!www.Intel.com/it/Vpro

Conto Corrente

Arancio

per te 100€ di

buoni acquisto

Aprilo subito!web.ingdirect.it/promozione

Progettazione

Elettronica

realizzazione

master PCB

marcatura CE,

produzione e

montaggio circuitiwww.gecoelettronica.com

Archiviazione a

Norma

L'archivio

aziendale è in

regola ? Sigear® -

Sistema Gestione

Archiviwww.sigear.it

Talend: Open

Source ETL

Prodotti ETL:

Veloci, Completi,

Facili ed

Economici!

Scarica gratisdownload.Talend.com/Open-Studio

Studia On Line

Hai poco tempo

per studiare?

Scegli la laurea

online. Info orawww.formazioneadistanzaonline.it

Usare l'ambiente di Simulazione integrata con il compilatore Keil - Elet... http://www.elettronicamente.com/engine/default.asp?page=projectvie...

1 di 6 14/03/2011 23:23

Page 2: Usare l'Ambiente Di Simulazione Integrata Con Il tore Keil - Elettronicamente

Una volta generato il codice: apriamo il progetto cliccando su "<nomeprogetto>.dpt" e, se Keil è correttamente installato, l'ambiente di sviluppo uVision si apriràmostrando i file inclusi nel progetto:

Tanto per essere sicuri che Keil è ben installato, io lancio una compilazione prima di ogniulteriore modifica:

0 Error(s) e 0 Warning(s) è proprio quello che si deve ottenere!

Modifica del main() per poter usare la funzione printf()

Bene, ora per poter usare la printf, dobbiamo semplicemente aggiungere nel main():

// USER CODE BEGIN (MAIN_General,2)#include <stdio.h> /* standard I/O .h-file */#include <string.h>..// USER CODE END

...

void main(void){ // USER CODE BEGIN (Main,2) // USER CODE END

MAIN_vInit();

// USER CODE BEGIN (Main,4) printf ( "PROVA RS232!!!\n\n" ); ASC0_ubTxDataReady();

while (1) ;

// USER CODE END

} // End of function main

l'aggiunta della chiamata "ASC0_ubTxDataReady();" è necessaria solo la prima volta per convincere la seriale a trasmettere il

primo byte, per le sucessive printf non è necessaria alcuna chiamata a tale funzione.

Usare l'ambiente di Simulazione integrata con il compilatore Keil - Elet... http://www.elettronicamente.com/engine/default.asp?page=projectvie...

2 di 6 14/03/2011 23:23

Page 3: Usare l'Ambiente Di Simulazione Integrata Con Il tore Keil - Elettronicamente

Simulazione del programma con Keil uVision

Prima bisogna settare il simulatore:

==> selezionate il bottone"Options for Targets" e selezionate il tab "DEBUG":

==> per poter usare il simulatore bisogna selezionare l'opzione "Use Simulator" posizionato inalto a sinistra:

==> dopo aver selezionato OK possiamo abilitare il DEBUGGER:

==> per iniziare potete usare la funzione "Show current statement on program counter" perfarvi mostrare la linea di codice corrispondente all'attuale Program Counter (PC):

==> ora potete aprire il terminale RS232 virtuale selezionando l'icona: ==> ora lanciate l'esecuzione (F5 per RUN come in tutti i compilatori) ed osserverete la stringadesiderata:

Usare l'ambiente di Simulazione integrata con il compilatore Keil - Elet... http://www.elettronicamente.com/engine/default.asp?page=projectvie...

3 di 6 14/03/2011 23:23

Page 4: Usare l'Ambiente Di Simulazione Integrata Con Il tore Keil - Elettronicamente

... ma funziona veramente ?!?

ESERCIZIO 2: simulare una conversione ADC

Ora per essere veramente convinti che il simulatore funziona modifichiamo il codice in:

... MAIN_vInit();

// USER CODE BEGIN (Main,4) printf ( "SERVO TESTER is RUNNING !!!\n\n" ); ASC0_ubTxDataReady();

while (1) { printf ( " AN1: %02X\n", ((ADC_uwReadConv()>>2) & 0x3FF) );

} // USER CODE END

Compilate e rilanciate il simulatore, otterrete:

==> chiaramente se avessimo aggiunto una linea di codice del tipo "printf ( " AN1: %02X\n",i++);" avremmo ottenuto qualcosa di diverso...

Per mostrarvi le potenzialità del simulatore, cercheremo di applicare una tensione "virtuale" aipin "virtuali" del microcontrollore per verificare che:

si possono applicare delle forme arbitrarie ad ogni pin del microcontrollore1.

i moduli periferici sono anch'essi simulabili (Timers, PWM, ADC, ...)2.

la printf stampa quanto atteso3.

STEP 1.

prepariamo uno script per stimolare virtualmente l'ingresso del convertitore ADC:

signal void ADC0_Konst (void){float fValue; // analogue port value fValue = 2.5; while(1) { swatch (0.05);

AN12 = fValue; // set analogue voltage }}define button "Applica Costante", "ADC0_Konst();g"

==> salviamo lo script in un file <nome progetto>.ini (es. ASC.ini) e rilanciamo il DEBUGER

selezionando la toolbox: , si dovrebbe aprire una finestrella con dei bottoni, un bottone

presenterà la scritta "Applica Costante": , pigiatelo ed otterete:

STEP 2.

la tensione sull'ingreso AN12 sarà posta a 2.5V:

Usare l'ambiente di Simulazione integrata con il compilatore Keil - Elet... http://www.elettronicamente.com/engine/default.asp?page=projectvie...

4 di 6 14/03/2011 23:23

Page 5: Usare l'Ambiente Di Simulazione Integrata Con Il tore Keil - Elettronicamente

STEP 3.

la coversione dell'ADC mostrerà 0x1FF, cioè metà dell'intero range 0 - 5V (infatti 2.5V è

esattamente la metà del range):

Wow sembra funzionare davvero !!!!

ESERCIZIO 3: simulare una Sinusoide

L'ultimo esperimento è quello di applicare una forma d'onda sinusoidale all'ingresso dell'ADC(AI12), aggiungiamo allo script la seguente subroutine:

//// Generate Sine Wave Signal on AD Channel 0//signal void ADC0_Sine (void) { float volts; // peak-to-peak voltage float frequency; // output frequency in Hz float offset; // voltage offset float duration; // duration in Seconds float val; long i, end;

volts = 1.4; offset = 1.6; frequency = 180; duration = 5;

printf ("Sine Wave Signal on AD Channel 12.\n");

end = (duration * 100000); for (i = 0 ; i < end; i++) { val = __sin (frequency * (((float) STATES) / CLOCK) * 2 *3.1415926); AN12 = (val * volts) + offset; swatch (0.00001); // in 10 uSec steps }}

...

define button "Applica Sine", "ADC0_Sine();g"...

otteniamo:

Usare l'ambiente di Simulazione integrata con il compilatore Keil - Elet... http://www.elettronicamente.com/engine/default.asp?page=projectvie...

5 di 6 14/03/2011 23:23

Page 6: Usare l'Ambiente Di Simulazione Integrata Con Il tore Keil - Elettronicamente

e:

Ovviamente molto altro è possibile, ma ora sono stanco e mi congedo...

Spero di avervi mostrato come effettuare delle simulazioni etrovare molto più rapidamente i problemi dei vostri software!!!

Cloud

Elettronicamente.com PICmicro RS232 FT232 P8X32A Parallax PIC16F84 Programmatore Elettronica PCB Circuito

Stampato Fotoincisione Microchip PIC16F876 Linguaggio AVR Linux NE555 ARM HD44780 DISPLAY LCD Alimentatore XE164 Infineon LED

Amplificatore Laboratorio Resistenza Condensatore Termometro PWM relazionewww.Elettronicamente.com

Utenti attualmente connessi:

(Nessuno)

Usare l'ambiente di Simulazione integrata con il compilatore Keil - Elet... http://www.elettronicamente.com/engine/default.asp?page=projectvie...

6 di 6 14/03/2011 23:23