microcontrolador y pantalla touch_ buen material

Upload: hectoruno

Post on 01-Mar-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    1/230

    UNIVERSIDAD MIGUEL HERNNDEZ DE ELCHE

    ESCUELA POLITCNICA SUPERIOR DE ELCHE

    INGENIERA INDUSTRIAL

    MANEJO DE UNA PANTALLA TCTILCON EL PIC32 PARA EL CONTROL DEDISPOSITIVOS EXTERNOS

    PROYECTO FIN DE CARRERA

    Enero 2010

    AUTOR: Jess Fernndez Gonzlez

    DIRECTORA: Mara Asuncin Vicente Ripoll

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    2/230

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    3/230

    Campus de Elche. Avda. del Ferrocarril s/n 03202 ELCHE

    VISTO BUENO Y CALIFICACIN DEL PROYECTO

    Ttulo proyecto:

    Proyectante: Jess Fernnez Gonzlez

    Directora: Mara Asuncin Vicente Ripoll

    Lugar y fecha:

    CALIFICACIN NUMRICA MATRCULA DE HONOR

    Mritos justificativos en el caso de conceder Matrcula de Honor:

    Lugar y fecha:

    E s c u e l a P o l i t c n i c a S u p e r i o r d e E l c h e

    U n i v e r s i d a d M i g u e l H e r n n d e z

    MANEJO DE UNA PANTALLA TCTIL CON EL PIC32 PARA EL CONTROLDE DISPOSITIVOS EXTERNOS.

    Conforme presidente:

    Fdo.:

    Conforme secretario:

    Fdo.:

    Conforme vocal:

    Fdo.:

    VB directora del proyecto:

    Fdo.: Mara Asuncin Vicente Ripoll

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    4/230

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    5/230

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    6/230

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    7/230

    NDICE

    1. CAPTULO1.INTRODUCCINYOBJETIVOS........................................ 25

    1.1 OBJETIVOS ......................................... 25

    1.2

    ESTRUCTURA

    .........................................

    26

    2. CAPTULO2.ELMICROCONTROLADORPIC32:HARDWARE

    YSOFTWARE ........................................ 29

    2.1 INTRODUCCIN ......................................... 29

    2.1.1 DIFERENCIASENTREUNMICROCONTROLADORYUN

    MICROPROCESADOR ......................................... 29

    2.1.2

    APLICACIONES

    DE

    LOS

    MICROCONTROLADORES

    ...........

    30

    2.1.3 MODELOSDEMICROCONTROLADORESDELAMARCA

    MICROCHIP ......................................... 32

    2.2 MICROCONTROLADOR PIC32 ......................................... 33

    2.2.1 ELECCIN DEL MICROCONTROLADOR................... 33

    2.2.2 CARACTERSTICAS DEL MICROCONTROLADOR

    PIC32MXXX ......................................... 34

    2.2.3 NCLEOMCU ......................................... 37

    2.2.3.1 Estadospipeline ......................................... 38

    2.2.3.2 UnidaddeEjecucin ...................................... 40

    2.2.3.3 MDU:UnidaddeMultiplicacinyDivisin..... 40

    2.2.3.4 ShadowRegisterSets..................................... 40

    2.2.3.5 RegisterBypassing......................................... 41

    2.2.3.6

    BITS

    de

    estado

    de

    la

    ALU

    ................................

    42

    2.2.3.7 MecanismodeInterrupcionesyexcepciones. 42

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    8/230

    NDICE

    2.2.4 JUEGODEINSTRUCCIONES ......................................... 43

    2.2.4.1 RegistrosdelaCPU......................................... 49

    2.2.4.2 Modosdelprocesador.................................... 49

    2.2.4.3 RegistrosCP0 ......................................... 51

    2.2.5 MEMORIADELSISTEMA ......................................... 52

    2.2.6 RECURSOSESPECIALES ......................................... 53

    2.2.6.1 PerroguardinoWatchdog........................... 53

    2.2.6.2 Tecnologadeahorroenergtico................... 53

    2.2.6.3 Osciladores ......................................... 54

    2.2.6.4 Puertosdecomunicacin............................... 54

    2.2.6.5 ConversorA/D ......................................... 56

    3. CAPTULO3.HERRAMIENTASSOFTWAREDEDESARROLLO............... 61

    3.1 MPLABIDE ......................................... 61

    3.1.1 INTRODUCCIN ......................................... 61

    3.1.2 CARACTERSTICASGENERALES ...................................... 62

    3.1.3

    ESTRUCTURA

    DE

    UN

    PROYECTO

    .....................................

    63

    3.1.4 CREACINDEUNPROYECTO......................................... 64

    3.2 SOFTWAREDEGRABACIN ......................................... 71

    3.2.1 INTRODUCCIN ......................................... 71

    3.2.2 SOFTWAREDEGRABACIN ......................................... 71

    3.2.3 GRABARENLAEXPLORER16MEDIANTEICD3................ 72

    4.

    CAPTULO

    4.

    TARJETA

    DE

    EVALUACIN

    PARA

    EL

    PIC32:

    STARTERKIT ........................................ 77

    4.1 INTRODUCCIN ......................................... 77

    4.1.1 CARACTERSTICASGENERALES....................................... 78

    4.1.2 ARQUITECTURADELATARJETAPIC32STARTERKIT...... 79

    4.2 PROGRAMASUTILIZADOSPARAVERIFICARSTARTERKIT............ 82

    4.3 PROGRAMASREALIZADOSPARAELPIC32STARTERKIT.............. 85

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    9/230

    NDICE

    5. CAPTULO5.SISTEMADEDESARROLLOEXPLORER16........................ 95

    5.1 INTRODUCCIN ......................................... 95

    5.1.1 CARACTERSTICASGENERALES....................................... 96

    5.1.2 ARQUITECTURADELATARJETAEXPLORER16................ 97

    5.2 SOFTWAREDEGRABACIN ......................................... 109

    5.3 EJEMPLOSDEPROGRAMASPARALAEXPLORER16...................... 110

    5.3.1 EJEMPLO1:LEDS ......................................... 112

    5.3.2 EJEMPLO2:INTERFAZSPI ......................................... 114

    5.3.3 EJEMPLO3:INTERFAZUART ......................................... 119

    5.3.4 EJEMPLO4:MODULOLCDYPUERTOPARALELO(PMP) 125

    5.3.5 EJEMPLO5:PULSADORES ......................................... 128

    5.3.6 EJEMPLO6:ENTRADASANALGICAS............................. 131

    6. CAPTULO6.PANTALLATCTIL:HARDWAREYSOFTWARE...............139

    6.1 INTRODUCCIN ......................................... 139

    6.1.1 IMPORTANCIADELASPANTALLASTCILESEN

    APLICACIONES

    EMBEBIDAS

    .........................................

    139

    6.2 ARQUITECTURAHARDWARE ......................................... 140

    6.2.1 ARQUITECTURADELAPANTALLATCTIL...................... 140

    6.2.2 FUNCIONAMIENTODEUNAPATALLATCTIL................ 142

    6.2.3 CARACTERSTICASMSIMPORTANTESDELLCD

    GRFICO ......................................... 144

    6.2.4 CONEXIONADODELAPANTALLATCTIL....................... 145

    6.3

    MICROCHIP

    GRAPHIC

    LIBRARY

    .........................................

    146

    6.3.1 ESTRUCTURADELALIBRERAGRFICA.......................... 146

    6.3.2 CARACTERSTICASDELOSWIDGETS(OBJETOS)............. 147

    6.3.3 FUNCIONAMIENTODELALIBRERA................................ 148

    6.3.4 PROGRAMASEJEMPLO ......................................... 153

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    10/230

    NDICE

    7. CAPTULO7.APLICACIONESDESARROLLADAS ..................................163

    7.1 INTRODUCCIN ......................................... 163

    7.2 PANTALLATCTIL ......................................... 163

    7.2.1 ASPECTOSATENERENCUENTAPARAELABORAREL

    PROGRAMA ......................................... 163

    7.2.2 ESTRUCTURADELPROGRAMA....................................... 166

    7.2.3 FUNCIONAMIENTODELPROGRAMA.............................. 173

    7.3 PANTALLATCTIL YACELEROMETRO ......................................... 177

    7.3.1 ASPECTOSATENERENCUENTAPARAELABORAREL

    PROGRAMA ......................................... 177

    7.3.2 ESTRUCTURADELPROGRAMA....................................... 179

    7.3.3 FUNCIONAMIENTODELPROGRAMA.............................. 182

    8. CAPTULO8.CONCLUSIONESYTRABAJOSFUTUROS.........................191

    ANEXOA.DISEODELAMEMORIADELPIC32 ......................................195

    A.1

    INTRODUCCIN

    .........................................

    195

    A.1.1 REGISTROSDECONTROL ......................................... 195

    A.2 DISEODELAMEMORIAPIC32 ......................................... 197

    A.2.1 CLCULODELADIRECCINFSICAAVIRTUAL

    YVICEVERSA ......................................... 199

    A.2.2 PARTICINDELAMEMORIAFLASHDEPROGRAMA..... 199

    A.2.3 PARTICINDELARAM ......................................... 200

    ANEXOB.CONSIDERACIONESPRCTICASPARA PROGRAMARELPIC32205

    B.1 INTRODUCCIN ......................................... 205

    B.2 VARIABLES ......................................... 205

    B.3 INTERRUPCIONES ......................................... 209

    B.3.1 MDULORTCC ......................................... 214

    B.3.2 OTRASFUNCIONESTILES ......................................... 215

    B.4 CONFIGURACINDELPIC32 ......................................... 215

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    11/230

    NDICE

    ANEXOC.ACELERMETROADXL330 ........................................223

    C.1 INTRODUCCIN ......................................... 223

    C.1.1 IMPORTANCIADELOSSENSORESENAPLICACIONES

    EMBEBIDAS ......................................... 223

    C.2 FUNCIONAMIENTODELSENSOR ......................................... 224

    ACRNIMOS ........................................227

    BIBLIOGRAFA ........................................229

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    12/230

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    13/230

    NDICE DE FIGURAS

    2.1 Estructurabsicadeunmicrocontrolador. ....... 30

    2.2 Ejemplosdeaplicacionesdemicrocontroladores. ....... 31

    2.3 PIC16F84A,modelodemicrocontroladormuypopularen

    ladocenciadePICs. ....... 32

    2.4 PIC32MX460512L. ....... 34

    2.5 100pinesdelPIC32MX3XXL. ....... 36

    2.6 EsquemadelosestadospipelinedelaCPUdelPIC32MX. ....... 39

    2.7 Esquemade losestadospipelinede laCPUdelPIC32MX

    antebloqueohardwareslip. ....... 41

    2.8 Esquemade losestadospipelinede laCPUdelPIC32MX

    usandoelmecanismobypassing. ....... 42

    2.9 Formatodelos3tiposdeinstrucciones. ....... 44

    2.10 RegistrosdelaCPU. ....... 49

    2.11 ModosdeoperacindelaCPU. ....... 50

    2.12 RegistrosCP0. ....... 51

    2.13 Primeros8bitsdelregistroSTATUS. ....... 52

    2.14 DiagramadebloquesdelmduloADCde10bits. ....... 56

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    14/230

    NDICE DE FIGURAS

    3.1 Procesodeescrituradeunaaplicacin. ....... 61

    3.2 PantallainicialdelMPLABIDE. ....... 63

    3.3

    Estructura

    de

    un

    proyecto

    con

    el

    MPLAB

    IDE. .......

    64

    3.4 Creacindeunproyecto,seleccindeldispositivo. ....... 65

    3.5 Creacin de un proyecto, seleccin del compilador y el

    linkado. ....... 65

    3.6 Creacindeunproyecto,nombrarelproyecto. ....... 66

    3.7 Creacindeunproyecto,aadirarchivosalproyecto. ....... 67

    3.8 Aadirarchivosalproyectodesdeelmenprincipal. ....... 67

    3.9 Resumendelasopcionesdeconfiguracin,configuration

    bits. ....... 68

    3.10 Construccindelprograma,build. ....... 69

    3.11 Programarelmicrocontrolador. ....... 69

    3.12 Verificacindelaprogramacineneldispositivo. ....... 70

    3.13 Ejecutarelprogramaenmododebugger. ....... 70

    3.14 MPLABICD3InCircuitDebugger. ....... 71

    4.1 SistemadeevaluacinPIC32StarterKit. ....... 77

    4.2 Componentes del sistema de evaluacin PIC32 Starter

    Kit. ....... 78

    4.3 PIC32StarterKit,Ledsencendidos. ....... 80

    4.4 Conector para expansin modular de 120 pins y/o

    alimentacindelatarjeta. ....... 81

    4.5 Diagrama de Bloques de la tarjeta de evaluacin PIC32

    StarterKit. ....... 81

    4.6 Cuadro de dilogo para la introduccin de la accin a

    realizar,programaStarterkitturorial.c. ....... 83

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    15/230

    NDICE DE FIGURAS

    4.7 VentanadeSalidadelprogramaStaterKitTutorial.c. ....... 83

    4.8 ConfigurationsbitsparaelPIC32StarterKit. ....... 85

    4.9

    Registro

    T1CON,

    asociado

    al

    Timer1. .......

    86

    4.10 VentanadeSalidadelprogramasemforosv2.0.c. ....... 92

    5.1 SistemadedesarrolloExplorer16. ....... 95

    5.2 ComponentesdelsistemadedesarrolloExplorer16. ....... 97

    5.3 a) Zcalo de 100 pins. b) Detalle de la esquina para la

    colocacindelPIC. ....... 98

    5.4 Selectordelprocesador,PICPIM. ....... 98

    5.5 Suministro de energa elctrica mediante fuente de

    alimentacin externa conectada a: a) Conector J12. b)

    Patillajesituadoenlaparteinferiorizquierdadelaplaca. ....... 99

    5.6 LEDspresentesenlatarjetaExplorer16. ....... 99

    5.7 Pulsadores presentes el sistema de desarrollo

    Explorer16. ....... 100

    5.8 JumperenmodoInterruptor:a)JumperenmodoON. b)

    JumperenmodoOFF. ....... 100

    5.9 JumperJ7enmodomultiplexor:a)Ubicacindeljumper

    en la placa Explorer16 b) Detalle de los 3 pines. c)

    JumperenelladoF4450.d)JumperenelladoPIC24. ....... 101

    5.10 MduloLCDdelaplacaExplorer16. ....... 102

    5.11 SensordeTemperaturaTC1047A. ....... 103

    5.12 PotencimetroR6de10K. ....... 103

    5.13 Conectorpara lafamiliadeprogramadores/depuradores

    ICD. ....... 103

    5.14 PuertoserieRS232. ....... 104

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    16/230

    NDICE DE FIGURAS

    5.15 ConectorUSB. ....... 104

    5.16 MemoriaEEPROM(25LC256)presenteenlaExplorer16. ....... 105

    5.17

    Relojes:

    a)

    Oscilador

    primario

    8MHz

    y

    secundario

    32.768kHz (cilndrico).b)OsciladorparaelPIC18LF4550

    20MHz. ....... 105

    5.18 Explorer16,PCBparaaadirunaLCDgrfica. ....... 106

    5.19 Explorer16, conectorpara tarjetas deexpansinPICtaill

    Plus. ....... 107

    5.20 Explorer16,conectorPICkit2. ....... 107

    5.21 Explorer16,conectorJTAG. ....... 108

    5.22 DiagramadeBloquesdelatarjetaExplorer16. ....... 108

    5.23 AdaptadorPIC32StarterKit100LPimAdaptor. ....... 109

    5.24 MPLABICD3InCircuitDebuggerenfuncionamientoenla

    Explorer16. ....... 109

    5.25

    LEDS

    encendidos,

    programa

    LED.c. .......

    1135.26 DiagramadebloquesdelainterfazSPI. ....... 114

    5.27 RegistroSTATUSdelaEEPROMserie,25LC256. ....... 116

    5.28 ConfiguracindelProgramaHyperterminal. ....... 122

    5.29 Consola del Programa Hyperterminal, ejecucin

    programaserial.c. ....... 123

    5.30 Consola del Programa Hyperterminal, ejecucin

    programaU2Test.c. ....... 124

    5.31 ProgramaLCDtest.cejecutadoenlaExplorer16. ....... 127

    5.32 Esquema del nuevo carcter a crear en el modulo LCD

    (0x00). ....... 128

    5.33 ProgramaProgressBar.c ejecutadoenlaExplorer16. ....... 128

    5.34 Rebotesocasionadosporlospulsadores. ....... 129

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    17/230

    NDICE DE FIGURAS

    5.35 Programabuttons.cejecutadoenlaExplorer16. ....... 131

    5.36 ProgramaPot.cejecutadoenlaExplorer16. ....... 133

    5.37

    Programa

    POT

    MAN.c

    ejecutado

    en

    la

    Explorer16. .......

    135

    5.38 ProgramaTemperatura.cejecutadoenlaExplorer16. ....... 135

    6.1 EjemplosdeAplicacionesconpantallastctiles. ....... 139

    6.2 GraphicsPICtailPlusDaughterBoardv2. ....... 140

    6.3 DiagramadeBloquesdelmoduloLCD. ....... 141

    6.4 Esquemadefuncionamientodeunpixelen unapantalla

    reflectiva. ....... 142

    6.5 Esquemadefuncionamientodeunpixelenunapantalla

    reflectivaII. ....... 143

    6.6 Esquemadefuncionamientodeunpixelenunapantalla

    transmisiva. ....... 143

    6.7 Esquemadefuncionamientodeunpixelenunapantalla

    transmisivaII. ....... 143

    6.8 Equipo completo en funcionamiento, sistema de

    desarrolloExplorer16,MPLABICD3yGraphicsPICtailPlus

    DaughterBoard. ....... 145

    6.9 Estructuradelalibreragrficav1.6 demicrochip. ....... 147

    6.10 Librera grfica, control de los objetos a travs de la

    interfazdemensaje. ....... 148

    6.11 Librera grfica, estructura GOL_SCHEME aplicada a un

    botn. ....... 149

    6.12 Libreragrfica,parmetrosparadefinir lasdimensiones

    deunbotn. ....... 150

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    18/230

    NDICE DE FIGURAS

    6.13 Diagrama de flujo bsico del funcionamiento de la

    libreragrfica. ....... 152

    6.14 ProgramaGraphicsPrimitives LayerDemoejecutadoen

    lapantallatctil. ....... 153

    6.15 Programa AN1136_v1.0.c ejecutado en la pantalla

    tctil. ....... 157

    6.16 Programa AN1136_v2.0.c ejecutado en la pantalla

    tctil. ....... 158

    6.17 Programa AN1136Demo.c ejecutado en la pantalla

    tctil. ....... 159

    7.1 EsquemadelPotencimetroR6delatarjetaExplorer16. ....... 165

    7.2 Sensorde temperaturaTC1047,Voltajedesalida (Vout)

    respectotemperatura. ....... 166

    7.3 Pantallaprincipal,ProgramaProyecto_1.c. ....... 173

    7.4 Pantalla Secundaria, Potentiometer, Programa

    Proyecto_1.c. ....... 174

    7.5 Pantalla Secundaria, Slide Potentiometer, Programa

    Proyecto_1.c. ....... 174

    7.6 Programa Proyecto_1.c a) Pantalla Secundaria, Set

    TimeandDate,detallealpresionarelmendesplegable

    paraseleccionarelmes.b)Fechayhoraconfiguradatras

    pulsar el botn Show. c) Pantalla principal tras

    configurarlahoraylafecha. ....... 175

    7.7 Pantalla Secundaria, Temperature Sensor, Programa

    Proyecto_1.c a) Pantalla cuando la temperatura es

    inferiora24C.b)Temperaturadel sensorentre24Cy

    25C.c)Temperaturaigualosuperiora26C. ....... 176

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    19/230

    NDICE DE FIGURAS

    7.8 I/OExpansionBoard. ....... 177

    7.9 I/OExpansionBoardconconectorsoldado. ....... 178

    7.10

    Conexin

    del

    acelermetro

    a

    la

    I/O

    Expansion

    Board. .......

    178

    7.11 Pantallaprincipal,ProgramaAPP.c ....... 183

    7.12 Calibracin del sensor, Programa APP.c a) Primera

    posicinacalibrar.b)ResultadosdeCalibracin. ....... 183

    7.13 Lecturadevalores,ProgramaAPP.c. ....... 184

    7.14 Pantalladisplay,ProgramaAPP.c. ....... 184

    7.15 Pantalla shock, Programa APP.c a) Esperando a un

    shock en alguno de los ejes. b) Shock producido en el

    ejeX. ....... 185

    7.16 Lecturadengulos,ProgramaAPP.c. ....... 186

    7.17 Juego de la pelota, Programa APP.c a) Mensaje de

    bienvenida al juego. b) Instrucciones del juego. c)

    Seleccindelniveldedificultad.d)Pantalladeljuego.e)

    Mensajefinalconeltiempoenejecucin. ....... 187

    8.1 USBPICtailPlusDaughterBoard. ....... 191

    8.2 Estructurapropuestaparalacaptacindevideo. ....... 192

    A.1 RegistrosSFRsparaconfigurarlamemoriadelPIC32. ....... 195

    A.2 Registro BMXPUPBA asociado a la memoria flash de

    programa. ....... 196

    A.3 DivisindelamemoriadelPIC32,regionesprimarias. ....... 197

    A.4 Mapeodelamemoriavirtuala lafsica. ....... 198

    A.5 Esquemadedireccionespara laparticinde lamemoria

    RAM. ....... 201

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    20/230

    NDICE DE FIGURAS

    B.1 Esquemadelaconfiguracindelrelojdelsistema. ....... 216

    C.1 UsodeunacelermetroeneliPhone. ....... 223

    C.2 AcelermetroADXL330. ....... 224

    C.3 SensibilidaddelsensorADLX330enlostresejes. ....... 224

    C.4 Modelofsicodeunsensorcapacitivodiferencial. ....... 225

    C.5 Salidadel sensorADXL330en funcinde laorientacin

    delmismo. ....... 225

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    21/230

    NDICE DE TABLAS

    2.1 ModelosdemicrocontroladoresdelamarcaMicrochip. ....... 32

    2.2

    Juego

    de

    instrucciones

    completo

    presente

    en

    la

    familia

    PIC32MX3XX/4XX. ....... 48

    5.1 JuegodecaracteresdelmduloLCD. ....... 102

    5.2 Listadetodos losprogramasevaluadossobreelsistema

    Explorer16. ....... 111

    5.3 Programas detallados ejecutados en el sistema de

    desarrolloExplorer16.

    .......

    112

    6.1 Caractersticas principales del TFTG240320UTSW92W

    TPE. ....... 144

    B.1 Comparacin de las variables enteras disponibles en el

    MPLABC32. ....... 205

    B.2 Comparacinde lasvariablesfraccionalesdisponiblesen

    el

    MPLAB

    C32.

    .......

    207

    B.3 Anlisis temporal de las diferentes variables,

    multiplicacin. ....... 208

    B.4 Anlisistemporaldelasdiferentesvariables,divisin. ....... 208

    B.5 Anlisis temporal de las diferentes instrucciones de

    optimizacindecdigo. ....... 220

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    22/230

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    23/230

    Manejo de una pantalla tctil con el PIC32 para elcontrol de dispositivos externos.

    1. INTRODUCCIN Y OBJETIVOS

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    24/230

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    25/230

    25

    CAPTULO

    1.

    INTRODUCCIN

    Y

    OBJETIVOS

    1.1. OBJETIVOS

    ElpresenteProyectoFindeCarrerasecentraeneldesarrollodeaplicaciones

    prcticasparalaprogramacindemicrocontroladores.Enconcreto,eltrabajohasido

    realizadoconmicrocontroladoresPICdegamaalta(familiademicrocontroladoresde

    32bits),enparticularconlosmodelosPIC32MX360F512Ly elPIC32MX460F512L.

    En los ltimos aos han tenido un gran auge los microcontroladores PIC

    fabricadosporMicrochipTechnologyInc.LosPIC(PeripheralInterfaceController)son

    unafamiliademicrocontroladoresquehatenidogranaceptacinydesarrollograciasa

    quesusbuenascaractersticas,bajoprecio,reducidoconsumo,pequeotamao,gran

    calidad, fiabilidad y abundancia de informacin, los convierten en muy fciles,

    cmodosyrpidosdeutilizar.

    Eltrabajo

    realizado

    en

    este

    proyecto

    se

    puede

    dividir

    en

    4tareas

    bsicas:

    Estudiodelhardwareysoftware(juegodeinstrucciones)delPIC32dada

    surecientepuestaenelmercado.

    Anlisis de programas ejemplo para la placa PIC32 Starter Kit y

    desarrollodelosprimerosprogramasejemploparaelPIC32.

    Estudio del sistema de desarrollo Explorer16 y desarrollo de cdigo

    fuenteparaestesistema.

    Desarrollo de aplicaciones de controlmediante el uso de la pantalla

    tctilincorporandoposteriormenteunacelermetro.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    26/230

    CAPTULO1.INTRODUCCINYOBJETIVOS

    26

    1.2. ESTRUCTURA

    Elproyecto finde carreraManejodeunapantalla tctil conelPIC32parael

    control

    de

    dispositivos

    externos

    sedivide

    en

    ocho

    captulos

    ytres

    anexos.

    Eneste

    primercaptuloserealizaunabreveintroduccindetallandolosobjetivosdelproyecto

    ydescribiendosuestructura.

    En el segundo captulo se realiza una introduccin a la arquitectura de los

    microcontroladores en general, y se describe con detalle la familia de los

    microcontroladoresPICde32bits.

    Eneltercercaptulosepresentanlosdistintosprogramasquesehanutilizadoa

    lo largo del proyecto, tanto para la grabacin de los programas en los

    microcontroladores,como

    para

    la

    depuracin

    ysimulacin

    del

    cdigo

    fuente.

    Seguidamente, en el cuarto captulo se describe la metodologa realizada

    durante la evaluacin del PIC32 Starter Kit, desarrollando los primeros programas

    fuenteparaelPIC32.

    Posteriormente, en el quinto captulo se analiza el sistema de desarrollo

    Explorer16,sepresentasuarquitecturafsicayelsoftwarenecesarioparahacerusode

    ella.Adems se presentan una serie de programas ejemplo desarrollados para esta

    tarjeta.

    Enelcaptulosextoseestudiaelhardwarede lapantallatctilpresenteen la

    placadeexpansinGraphicsPICtailPlusDaughterBoard (versin2)yseanalizael

    funcionamientodelalibreraMicrochipGraphicLibraryversin1.6..

    Acontinuacin,enelcaptulosptimosedetallanlasaplicacionesdesarrolladas

    paralatarjetagrficaGraphicsPICtailPlusDaughterBoard(versin2)usandotanto

    elsistemadedesarrolloExplorer16comolatarjetaI/OExpansionBoardalacualse

    haincorporadoelacelermetroADXL330.

    Finalmente,enelcaptulooctavosehaceunarecopilacindeconclusiones,as

    comodelosposiblestrabajosfuturos.

    Por ltimo, al final del documento se encuentran losAnexosA,B yC. En el

    anexoAsedescribedequmanerasepuedeconfigurar lamemoriadelPIC32.Enel

    anexo B se describen distintos aspectos a tener en cuenta a la hora de programar

    sobreelPIC32queno se comentanenprofundidadenningunode loscaptulosdel

    presenteproyecto.MientrasqueelanexoCserealizaunbreveestudiodelhardware

    delacelermetroADLX330paraladeteccindemovimientoenelespacio.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    27/230

    Manejo de una pantalla tctil con el PIC32 para elcontrol de dispositivos externos.

    2. EL MICROCONTROLADOR PIC32:HARDWARE Y SOFTWARE

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    28/230

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    29/230

    29

    CAPTULO2.ELMICROCONTROLADORPIC32:

    HARDWARE

    Y

    SOFTWARE

    2.1. INTRODUCCIN

    Hace unos aos, los sistemas de control se implementaban usando

    exclusivamentelalgicadecomponentes,loquehacaquefuesendispositivosdegran

    tamaoymuypesados.Parafacilitarunavelocidadmsaltaymejorarlaeficienciade

    estos

    dispositivos

    de

    control,

    se

    trat

    de

    reducir

    su

    tamao

    apareciendo

    as

    los

    microprocesadores. Siguiendo con el proceso de miniaturizacin, el siguiente paso

    consistienlafabricacindeuncontroladorqueintegrasetodossuscomponentesen

    unsolochip.Aestoseleconoceconelnombredemicrocontrolador.

    2.1.1. DIFERENCIAS ENTRE UN MICROCONTROLADOR Y UN

    MICROPROCESADOR

    UnmicroprocesadoresuncircuitointegradoquecontienelaUnidadCentralde

    Proceso(CPU)deuncomputador,queconstade laUnidaddeControlyde losbuses

    necesarios para comunicarse con los distintos mdulos. Mientras que un

    microcontrolador, es un circuito integrado programable que contiene todos los

    bloquesnecesariosparacontrolarelfuncionamientodeunatareadeterminada:

    ProcesadoroCPU:queinterpretalasinstruccionesdeprograma.

    Memoria

    RAM

    para

    almacenar

    las

    variables

    necesarias.

    MemoriaEPROM/PROM/ROMparaelprogramatipo.

    PuertosE/Sparacomunicarseconelexterior.

    Diversosmdulosparaelcontroldeperifricos.

    Generador de impulsos de reloj que sincroniza el funcionamiento de todo el

    sistema.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    30/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    30

    Figura

    2.1:

    Estructurabsicadeunmicrocontrolador.

    En la Figura 2.1, se puede ver al microcontrolador embebido dentro de un

    encapsulado de circuito integrado, con su procesador, buses, memoria, perifricos y

    puertos de entrada/salida. Fuera del encapsulado se ubican otros circuitos para

    completar perifricos internos y dispositivos que pueden conectarse a los pines de

    entrada/salida.

    Unmicrocontroladores,portanto,uncircuitoochipqueincluyeensuinterior

    las tresunidades funcionalesdeunordenador:CPU,MemoriayUnidadesdeE/S,es

    decir,setratadeuncomputadorcompletoenunsolocircuitointegrado.

    2.1.2. APLICACIONES DE LOS MICROCONTROLADORES

    Cadavezexistenmsproductosqueincorporanunmicrocontroladorconelfin

    deaumentarsustancialmentesusprestaciones,reducirsutamaoycoste,mejorarsu

    fiabilidadydisminuirelconsumo.

    Losmicrocontroladoresamenudoseencuentranenaplicacionesdomsticasy

    enequiposinformticostalescomo:microondas,refrigeradores,lavadoras,televisin,

    equiposdemsica,ordenadores,impresoras,mdems,lectoresdediscos,etc.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    31/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    31

    Figura2.2:Ejemplosdeaplicacionesdemicrocontroladores.

    Los microcontroladores tambin son muy utilizados en robtica, donde la

    comunicacin entre controladores es muy importante. Esto hace posible muchas

    tareas especficas al distribuir un gran nmero de microcontroladores por todo el

    sistema.Lacomunicacinentrecadamicrocontroladoryunocentral,permiteprocesar

    lainformacinporunordenadorcentral,otransmitirloaotrosmicrocontroladoresdel

    sistema.

    Otroejemplo

    de

    aplicacin

    de

    los

    microcontroladores,

    es

    la

    de

    la

    utilizacin

    para monitorizar y gravar parmetros medioambientales (temperatura, humedad,

    precipitaciones, etc.). El pequeo tamao, el bajo consumo de potencia y su

    flexibilidad hacen de este dispositivo, una herramienta adecuada para este tipo de

    aplicaciones.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    32/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    32

    2.1.3. MODELOS DE MICROCONTROLADORES DE LA MARCA MICROCHIP

    Diversosfabricantesofrecenampliasgamasdemicrocontroladoresparatodas

    lasnecesidades.Nosotrosvamosautilizarmicrocontroladoresde lamarcamicrochip,

    alser

    la

    marca

    con

    un

    mayor

    nmero

    de

    modelos

    de

    estos

    ypor

    su

    mayor

    utilizacin

    tantoprofesionalmentecomoporaficionados.

    Dentrodelamarcademicrochip,nosencontramosconvariosmodelosdePIC.

    Estos se clasifican de acuerdo a la longitud de sus instrucciones dando lugar a 3

    grandestiposdePIC.

    Clasificacin Longituddeinstrucciones ModelosdePIC

    GamaBaja 8bits Pic10,Pic12,Pic16,Pic18

    GamaMedia 16bits Pic24F,Pic24H,dsPIC30,dsPIC33

    GamaAlta 32bits Pic32

    Tabla

    2.1:

    ModelosdemicrocontroladoresdelamarcaMicrochip.

    Adems,conformeaumentamoslalongituddelasinstruccionesvaaaumentar

    la funcionalidad, las prestaciones ofrecidas pero tambin la complejidad de las

    instruccionesydesuuso.

    Figura

    2.3:

    PIC16F84A,modelo

    de

    microcontrolador

    muy

    popular

    en

    la

    docencia

    de

    PICs.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    33/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    33

    2.2. MICROCONTORLADOR PIC32

    2.2.1. ELECCIN DEL MICROCONTROLADOR

    Existe una gran diversidad de microcontroladores, como se ha podido

    comprobar con anterioridad. Dependiendo de la potencia y caractersticas que se

    necesiten, se pueden elegir microcontroladores de 8, 16 32 bits. Aunque las

    prestacionesdelosmicrocontroladoresde16y32bitssonsuperioresalosde8bits,la

    realidadesquelosmicrocontroladoresde8bitsdominanelmercado.Estoesdebidoa

    que los microcontroladores de 8 bits son apropiados para la gran mayora de las

    aplicaciones,por loquenoesnecesarioemplearmicrocontroladoresmspotentesy

    enconsecuenciamscaros.

    Sin embargo, los modernos microcontroladores de 32 bits (puestos en el

    mercadoafinalesdelao2007)sevanafianzandoenelmercado,siendolasreasde

    ms inters el procesamiento de imgenes, las comunicaciones, las aplicaciones

    militares, losprocesos industrialesyelcontrolde losdispositivosdealmacenamiento

    masivodedatos.

    Alahoradeseleccionarelmicrocontroladorautilizarenundiseoconcretose

    hade

    tener

    en

    cuenta

    multitud

    de

    factores

    como

    la

    documentacin,

    herramientas

    de

    desarrollo disponibles y su precio, la cantidad de fabricantes que lo producen y por

    supuesto las caractersticas del microcontrolador (tipo de memoria de programa,

    nmerodetemporizadores,interrupciones,etc.).

    En el caso particular de este proyecto, la eleccin del microcontrolador vino

    influenciadaporsurecientepuestaenelmercadodelmismo,conmotivodeanalizary

    estudiar las nuevasposibilidades que nos ofreca el PIC32 respectoa susanteriores.

    Dentrode

    los

    microcontroladores

    de

    gama

    alta

    vamos

    autilizar

    dos

    modelos

    de

    32

    bits,elPIC32MX360F512Ly elPIC32MX460F512L.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    34/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    34

    Figura

    2.4:

    PIC32MX460512L.

    2.2.2. CARACTERSTICAS DEL MICROCONTROLADOR PIC32MXXX

    El PIC32X360F512L, introduce una nueva lnea de dispositivos de microchip

    correspondientes a la familia de microcontroladores de 32 bit RISC (Reduced

    Instruction Set Computer). Adems esta familia ofrece la opcin de una nueva

    migracin para estas aplicaciones de altas prestaciones las cuales pueden quedarse

    pequeasparalasplataformasde16bit.

    AcontinuacinsemuestranlascaractersticasgeneralesdelPIC32:

    Frecuenciadeoperacin:Dc80MHZ.

    Memoria

    de

    programa:

    512Kbytes

    MemoriadeDatos:32Kbytes

    Recursosdeinterrupcin/vectores:95/63

    PuertosdeE/S:PuertosA,B,C,D,F,G

    o TotalpinsE/S:85

    CanalesDMA(DirectmemoryAccess):4

    Timers:

    o Nmerototal(16bit):5

    o32

    bit

    (pareja

    de

    16

    bit):

    2

    o Timerdencleode32bit:1

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    35/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    35

    Canalesdecapturadeentrada:5

    CanalesdesalidaComparadores/PWN

    Notificacindecambiodeentradasporinterrupcin:22

    Comunicacionesenserie:

    o UART:2

    o SPI(3cables/4cables):2

    o I2C:2

    Comunicacionesparalelas(PMP/PSP):8bit/16bit

    JTAGboundarySCAN

    JTAGdebugandprogram

    ICSP2wiredebugandprogram:

    Instruccintrace

    Hardwarebreakpoints:6instructions,2Data

    Modulode10bitanalgicodigital(Canalesdeentrada):16

    Comparadoresanalgicos:2

    InternoLDO

    Resets (y retrasos): POR, BOR, MCLR, WDT, SWT(software reset),

    CM(configurationBitMismatch)

    100pinTQFP

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    36/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    36

    Figura

    2.5:

    100pinesdelPIC32MX3XXL.

    Porotraparte,laarquitecturadelPIC32hasidodescompuestaenlossiguientes

    bloquesfuncionales:

    NcleoMCU

    Memoriadelsistema

    Perifricos

    Integracindelsistema

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    37/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    37

    2.2.3. NCLEO MCU

    ElcorazndelPIC32eselncleoM4KCPUbasadoenlatecnologaMIPS32[1].

    LaCPU

    realiza

    las

    operaciones

    bajo

    el

    programa

    de

    control.

    Las

    instrucciones

    son

    ledas

    ycargadasporlaCPU,decodificadasyejecutadassncronamente. Estasinstrucciones

    sepuedenalmacenarenlamemoriaflashdeprogramaobienenlamemoriadedatos

    RAM.

    Esta CPU del PIC32 se basa, por tanto, en una arquitectura de carga

    almacenamiento la cual realiza la mayora de operaciones en base a una serie de

    registros internos (contiene 32 registros de propsito general de 32 bits). Estas

    instrucciones especficas de carga y almacenamiento se utilizan para mover datos

    entreestosregistrosinternosascomofueradelPIC.

    LascaractersticasprincipalesdelncleoMCUsonlassiguientes:

    NcleoRISCMIPS32M4Kde32bits.

    ALUdeunsolociclo.

    Unidaddeejecucindecargaalmacenamiento.

    5estadospipeline.

    Busesdedireccionesydatosde32bits.

    Archivosderegistrodepropsitogeneralde32bits.

    FMTFixedMappingTranslation. FMDUFastMultiplyDivideUnit.

    MIPS32Compatibleinstructionset.

    MIPS16eCodeCompressionInstructionSetArchitectureSupport.

    Instrucciones de 16 y 32 bits, optimizadas para lenguajes de alto nivel

    comoC.

    PuertodebugEJTAG

    Rendimientohasta1.5DMIPS/MHz

    Proteccin

    del

    cdigo

    interno

    para

    ayudar

    a

    proteger

    la

    propiedad

    intelectual.

    A continuacin vamos a ir describiendo algunas de estas caractersticas as

    comolosconceptosmsimportantesdelNcleoMCU.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    38/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    38

    2.2.3.1 Estados pipeline

    Losestadosdelpipelineson5:

    Estadodeinstruccin(I)

    Estadodeejecucin(E) Estadodememoria(M)

    Estadodealinear(A)

    Estadodereescribir(W)

    Estado I: Instruccin Fetch

    Durante el estado I una instruccin es cargada y leda desde SRAM y las

    instruccionesMIPS16esonconvertidasainstruccionesenMIPS32.

    Estado E:Ejecucin

    DuranteelestadoE:

    Losoperandossonledosycargadosdesdeelarchivoderegistro.

    OperandosdelosestadosMyAsondesviadosaesteestado.

    La unidad aritmtico lgica (ALU) empieza las operaciones aritmticas o

    lgicaspara

    las

    instrucciones

    registro

    aregistro.

    La ALU calcula la direccin virtual de los datos para las instrucciones de

    cargaryguardaryelMMU(MemoryManagementUnit)realizaeltraslado

    deladireccinvirtualalafsica.

    LaALUdeterminasiparaunacondicindebifurcacinestaesverdaderay

    calculaladireccinobjetivodelaramificacin.

    LasinstruccioneslgicasseleccionanunadireccindeinstruccinyelMMU

    realizalatraslacindeladireccinvirtualalafsica.

    Todaslasoperacionesdedivisinymultiplicacinempiezanenesteestado.

    Estado M:Memory Fetch

    Duranteesteestado:

    TerminanlasoperacionesaritmticasolgicasdelaALU.

    Se realiza el acceso a los datos SRAM para las instrucciones de carga y

    almacenamiento.

    Los

    clculos

    de

    multiplicaciones

    y

    divisiones

    continan

    en

    la

    MDU

    (Multiply/DivideUnit). Sielclculo terminaantesqueel IU (IntegerUnit)

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    39/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    39

    mueva la instruccin pasada al estado M, entonces la MDU mantiene el

    resultadoenun registro temporalhastaqueel IUmueve la instruccinal

    EstadoA(yconsecuentementesabrquenosereliminado)

    Estado A: Alinear

    DuranteelestadoA:

    Una operacin MUL hace que el resultado est disponible para la

    reescritura. ElregistroactualreescritoesejecutadoenelestadoW.

    Desde este estado, la carga de datos o el resultado de la MDU estn

    disponiblesparasubypassing(comentadoacontinuacin)enelestadoE.

    Estado W: Reescribir

    Durante el registro W: Para registros a registros o cargar instrucciones, el

    resultadosereescribeenelarchivoderegistro.

    El ncleo M4k implementa un mecanismo de desviacin (bypassing) que

    permitequeelresultadodeunaoperacinseaenviadodirectamentea la instruccin

    que lonecesita sin tener queescribir el resultadoenel registro y entonces volvera

    leerlo.

    Figura

    2.6:

    EsquemadelosestadospipelinedelaCPUdelPIC32MX.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    40/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    40

    2.2.3.2 Unidad de Ejecucin

    La unidad de ejecucin del PIC32 es la responsable de llevar a cabo el

    procesamiento de la mayora de instrucciones del MIPS. Esta proporciona una

    ejecucinpara lamayorade instruccionesenunsolociclo,mediante laejecucinen

    pipeline

    (pipelining),

    donde

    las

    complejas

    operaciones

    son

    divididas

    en

    pequeas

    partesllamadosestados(explicadosanteriormente).

    2.2.3.3. MDU: Unidad de Multiplicacin y Divisin

    La unidad de multiplicacin y divisin realiza como su nombre indica, las

    operaciones de divisin y multiplicacin. La MDU consiste en un multiplicador de

    32x16, registros de resultado de acumulacin (HILO) y todos los multiplexores y la

    lgicade

    control

    requerida

    para

    realizar

    estas

    funciones.

    Esta

    unidad

    tiene

    unas

    altas

    prestacionesyaquesoportalaejecucindeunaoperacindemultiplicacinde16x16

    o32x16cadaciclodereloj,yunaoperacindemultiplicacinde32x32serealizacada

    dosciclosdereloj.Porotraparte,lasoperacionesdedivisinseimplementanconun

    solobitcadacicloderelojmedianteunalgoritmoiterativoyrequiere35ciclosdereloj

    en el peor de los casos para que se complete la operacin. Tan pronto como el

    algoritmo detecta el signo del dividendo, si el tamao actual es 24, 16 o 8 bits, el

    divisorsalta7,15o23delas32iteraciones.

    Adems,

    el

    M4K

    implementa

    una

    instruccin

    adicional

    de

    multiplicacin,

    MUL,

    la cual consiste en que los 32 bits ms bajos del resultado de la multiplicacin se

    guardanenelarchivoderegistroenlugardeenelparderegistrosHI/LO.Paraello,se

    handiseadodos instruccionesadicionalesqueseusanparaejecutar lasoperaciones

    demultiplicacinysumaascomomultiplicacinyresta,estason:multiplicacinsuma

    (MADD/MADDU) y multiplicacinresta (MSUB/MSUBU). La instruccin MADD

    multiplica dos nmeros y entonces suma el producto al contenido actual de los

    registrosHIy LO. Similarmente, la instruccinMSUBmultiplica losdosoperandos y

    entoncesrestaelproductodelosregistros HIyLO. Estasoperacionessesuelenusar

    enalgoritmos

    de

    Digital

    Signal

    Processor

    (DSP).

    2.2.3.4. Shadow Register Sets

    El procesador del PIC32 implementa una copia de los registros de propsito

    general para usarlos como interrupciones de alta prioridad. Este banco extra de

    registroesconocidocomoshadowregisterset(controladosporlosregistrosubicados

    en la CP0) [2]. Cuando ocurre una interrupcin de alta prioridad, el procesador

    automticamente conmuta a los shadow register set sin la necesidad de una

    intervencindelsoftware.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    41/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    41

    Este banco de registros especiales permite reducir eficazmente, tanto la

    sobrecargaenelmanejodeinterrupcionescomoeltiempodelatencia.

    2.2.3.5. Register Bypassing

    UnInterlockobloqueo,ocurrecuandounainstruccinenelestadopipelineno

    puede avanzar debido a una dependencia de datos o una condicin externa similar,

    porejemplo,cuandounainstruccindependedelresultadodeunainstruccinprevia.

    EltipodebloqueohardwareenelprocesadorMIPsesSlips.Estospermitenqueuna

    partede lapipelineavancemientrasotrapartede lapipelinepermaneceesttica,se

    muestraunejemploenlasiguientefigura:

    Figura

    2.7:

    EsquemadelosestadospipelinedelaCPUdelPIC32MXantebloqueo

    hardwareSlip.

    Sin embargo, el procesador del PIC32 implementa un mecanismo llamado

    registerbypassingqueayudaareducirestosslipsen lapipelinedurante laejecucin.

    Cuando una instruccin esta en el estado E de la pipeline, el operando debe estar

    disponibleparalasiguienteinstruccin.

    Elregistrobypassingpermiteunatajoparaconseguirdirectamenteeloperando

    desdelapipeline. DetalformaqueunainstruccinenelestadoEpuederecuperarun

    operandodeotrainstruccinqueseestejecutandooenelestadoMoenelestadoA

    de la pipeline. Mediante la figura que se muestra a continuacin podemos ver las

    interdependenciasdescritas:

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    42/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    42

    Figura

    2.8:

    EsquemadelosestadospipelinedelaCPUdelPIC32MXusandoelmecanismo

    bypassing.

    Evidentementeelusodelbypassingaumentaelrendimientoenelrangodeuna

    instruccinporciclorelojparalasoperacionesdelaALU.

    2.2.3.6. BITS de estado de la ALU

    AdiferenciadelamayoradelosotrosmicrocontroladoresPIC,elPIC32nousa

    un registro de Status con flags. Las banderas o flags se usan en la mayora de los

    procesadores

    a

    ayudar

    a

    tomar

    una

    decisin

    para

    realizar

    operaciones

    durante

    la

    ejecucindeunprograma.Estasbanderassebasanen,resultadosdecomparacinde

    operacionesobienenoperacionesaritmticas. Detalformaqueelprogramaejecuta

    instruccionesbasadasenestosvaloresdelasbanderas.

    Sin embargo el PIC32 usa instrucciones que realizan una comparacin y

    almacenan una bandera o valor en un registro de propsito general, ejecutndose

    entoncesunaramacondicionada,usandoesteregistrodepropsitogeneralqueacta

    comounoperando.

    2.2.3.7. Mecanismo de interrupciones y excepciones

    La familia de procesadores del PIC32 implementa un mecanismo eficiente y

    flexibleparaelmanejode las interrupcionesyexcepciones. Ambossecomportande

    manerasimilaryaquelainstruccinactualcambiatemporalmenteparaejecutarseun

    procedimiento especial. La diferencia entre las dos es que las interrupciones son

    usualmenteuncomportamientonormalylasexcepcionessonelresultadodeunerror

    enlascondiciones,comoporejemplounerrorenelbusalenviarorecibirdatos.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    43/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    43

    Cuando ocurre una interrupcin o una excepcin, el procesador realiza los

    siguientespasos:

    El PC (contador de programa) de la siguiente instruccin a ejecutar se

    guardaenelregistrodelcoprocesador.

    Lacausadelregistroesactualizadaparaconocerlarazndelaexcepcino

    delainterrupcin.

    StatusEXLoERLespuestoa1comocausadelmododeejecucinKernel.

    DesdelosvaloresdeEBASEySPACINGsecalculaelPC.

    ElprocesadorcomienzalaejecucindelprogramadesdeunnuevoPC.

    2.2.4. JUEGO DE INSTRUCCIONES

    LafamiliadelosmicroprocesadoresPIC32estndiseadosparausarseconun

    leguajedeprogramacindealtonivelcomoeselleguajedeprogramacinC. ElPIC32

    soporta varios tipos de datos y usa un modo de direccionamiento simple pero

    necesarioparael lenguajedealtonivel. Demaneraquedisponede32 registrosde

    propsito general y 2 registros especiales para realizar las operaciones de

    multiplicacinydivisin(HiLo).

    Existen tres tipos diferentes de formatos para las instrucciones en lenguaje

    mquinapresentes

    en

    el

    procesador.

    InstruccionesInmediatasotipoI.

    InstruccionesdeSaltootipoJ.

    InstruccionesdeRegistrosotipoR.

    La mayora de estas instrucciones son ejecutadas en registros. Las

    instrucciones de Registros tienen tres operandos: 2 fuentes y un destino. Las

    instrucciones inmediatas tienen una fuente y un destino, mientras que las

    instruccionesdesaltotienenunainstruccinrelativade26bit,queseusaparacalcular

    eldestinodelsalto.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    44/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    44

    Figura

    2.9:

    Formatodelos3tiposdeinstrucciones.

    Acontinuacinmostramosunatablaresumencon las instruccionesqueestnimplementadasen losncleosde lassiguientesfamiliasdemicrocontroladoresde32

    bits,PIC32MX3XX/4XX:

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    45/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    45

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    46/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    46

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    47/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    47

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    48/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    48

    Tabla

    2.2:

    JuegodeinstruccionescompletopresenteenlafamiliaPIC32MX3XX/4XX.

    Comopodemosobservarexisten124instruccionesdiferentes,porloquedada

    su extensin y su dificultad, la familia de los microprocesadores PIC32 suelen

    programarse en lenguaje de programacin de alto nivel, accediendo a los registros

    especficos usando las funciones proporcionadas por el compilador o asignado

    directamentelosunosyloscerosenlasposicionesdeseadas.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    49/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    49

    2.2.4.1. Registros de la CPU

    TalycomohemoscomentandoanteslosregistrosdelaCPUsonlossiguientes:

    32registrosdepropsitogeneralde32bits.

    2 registros de propsito general para almacenar el resultado de lasmultiplicaciones,divisionesyoperacionesdemultiplicacinacumulativa(HI

    yLO).

    Yunregistrodepropsitoespecial,contadordeprograma(PC),alcualsolo

    le afectan indirectamente ciertas instrucciones, tal y como hemos visto

    anteriormente, las interrupciones y excepciones. Este registro no es un

    registrovisibleenlaarquitectura.

    En

    la

    siguiente

    figura

    se

    muestra

    la

    distribucin

    de

    los

    registros

    de

    la

    CPU:

    Figura

    2.10:

    RegistrosdelaCPU.

    2.2.4.2. Modos del procesador:

    Hay tres maneras distintas de ejecucin de la CPU del PIC32: dos modos de

    operacinyunmodoespecial:modoUser,modoKernelymodoDebug. Elprocesador

    comienza laejecucinenelmodoKernelysisequieresepuedepermanecereneste

    mododurantelaoperacinnormal. Elmodousuarioesunmodoopcionalquepermite

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    50/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    50

    al diseador partir el cdigo entre software privilegiado y no privilegiado. Por otra

    parte,elmodoDEBUGsoloseusasolomedianteundepurador.

    Unade lasprincipalesdiferenciasentre losdistintosmodosdeoperacinesel

    direccionamientodelamemora,detalformaqueelsoftwaresolopermiteelaccesoa

    determinadas regiones de esta. Por ejemplo los perifricos no son accesibles en el

    modo usuario. La siguiente figura muestra la organizacin de la memoria en cada

    modo:

    Figura

    2.11:

    ModosdeoperacindelaCPU.

    Modo Kernel:

    Parapoderaccederatodoslosrecursoshardware,elprocesadordebeestaren

    esteestado.

    Tal

    y

    como

    podemos

    veren

    la

    figura

    anterior,

    este

    modo

    permite

    el

    accesosoftwareatodoelespaciodedireccionesdelprocesadorascomotambina

    lasinstruccionesprivilegiadas.

    De tal forma que el procesador operar en este modo cuando el bit DM del

    registroDEBUGsea0yelregistroSTATUScontengaalgunodelossiguientesvalores:

    UM=0;ERL=1;EXL=1.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    51/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    51

    Modo User:

    Para poder operar en este modo, el registro STATUS debe contener los

    siguientesvalores:UM=1;EXL=0;ERL=0.

    Mientras

    se

    est

    ejecutando

    el

    procesador

    en

    este

    modo,

    el

    software

    se

    restringeaunaseriederecursosdelprocesador.Detal forma,queenestemodose

    tienenicamenteaccesoalreadememoriaUSEG.

    Modo Debug:

    Este modo especial del procesador, requiere que para su funcionamiento se

    ejecuteunaexcepcindebug. Detalformaqueseaccederatodoslosrecursoscomo

    en

    el

    modo

    kernel

    as

    como

    a

    los

    recursos

    hardwares

    especiales

    usados

    en

    lasaplicacionesdedebug. CuandoseentraenestemodoelbitDMdelregistroDEBUGes

    1. ParasalirdeestemodobastaconejecutarlainstruccinDERET.

    2.2.4.3. Registros CP0:

    ElPIC32usaunregistroespecialcomointerfaceparacomunicarelestatusyla

    informacindecontrolentreelsoftwaredelsistemay laCPU. Esta interfazse llama

    coprocesador 0. El software del sistema accede a los registros del CP0 usando las

    instruccionesdelcoprocesadorcomoMFC0yMTC0. LosregistrosCP0enelMCUdel

    PIC32sonlossiguientes:

    Figura

    2.12:

    RegistrosCP0.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    52/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    52

    Entre los registros ms importantes del coprocesador destaca el registro

    STATUS(registro12delCP0,seleccin0).EsteregistroSTATUSesdelecturayescritura

    ycontieneel modode operaciones, lahabilitacinde interrupcionesy elestadodel

    diagnosticodelprocesador.

    o Interrupcioneshabilitadascuando:

    IE=1 EXL=0 ERL=0 DM=0

    o Modosdeoperacin:

    DEBUGcuandoelbitDMes1encualquierotrocasoKernelo

    user

    Modousercuando UM=1 EXL=0 ERL=0

    ModokernelcuandoUM=0 EXL=1 ERL=1

    Laposicinqueocupanestosbitsson:

    Figura2.13:Primeros8bitsdelregistroSTATUS.

    2.2.5. MEMORIA DEL SISTEMA

    ElPIC32proporciona4GB (232) deespaciodedireccionesdememoriavirtual

    unificada.Todaslasregionesdememoria,incluidaslamemoriadeprograma,memoria

    dedatos,SFRsyregistrosdeconfiguracinresidenenesteespaciodedireccionescon

    sus respectivas direcciones nicas. Opcionalmente, la memoria de datos y de

    programasepuedenpartirenmemoriadeusuarioykernel. Adems, lamemoriade

    datospuedeponersecomoejecutable,permitiendoalPIC32ejecutarsedesdeesta.

    Caractersticasprincipalesdelaorganizacindelamemoria:

    Anchodedatosde32bits.

    SeparacindelespaciodedireccionesdelmodoUserykernel

    Flexibilidad para poder realizar una particin de la memoria flash de

    programa.

    Flexibilidad para poder realizar una particin de la memoria RAM para

    datosyotroespacioparaprograma.

    SeparacindelamemoriaFlashbootparaprotegerelcdigo.

    Manejorobustodelasexcepcionesdelbusparainterceptarelcdigofuera

    decontrol.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    53/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    53

    MapeodelamemoriamediantelaunidadFMT(FixedMappingTranslation)

    Regionesdedireccionescacheablesynocacheables.

    EnelAnexoAdelpresenteproyecto,sedetallaconmsprecisin la formaen la

    queseseparan losespaciosdememoriaenmodouserykernel, losregistrosusados

    paraconfigurar lamemoriadelmicrocontrolador,ascomo lamaneraderealizaruna

    particin tanto de la memoria flash de programa como de la memoria RAM y las

    consideracionesquehayquetenerencuentaalahoradellevarloacabo.

    2.2.6. RECURSOS ESPECIALES

    En

    este

    apartado

    se

    detallan

    los

    recursos

    especiales

    ms

    comunes

    que

    pueden

    poseerlosmicrocontroladores:

    2.2.6.1. Perro guardin o Watchdog:

    El perro guardin est diseado para inicializar automticamente el

    microcontroladorenelcasodequeexistaunmalfuncionamientodelsistema.

    Consiste en un temporizador cuyo objetivo es generar automticamente un

    reset cuando se desborda y pasa por 0, a menos que se inhabilite en la palabra de

    configuracin.Cuandoelperroguardinesthabilitado,sehadedisearelprograma

    demaneraquerefresqueoinicialicealperroguardinantesdequeseprovoquedicho

    reset.Sielprograma fallaosebloquea,noserefrescaralperroguardinycuando

    completesutemporizacinprovocarunresetalsistema.

    2.2.6.2. Tecnologa de ahorro energtico:

    Todos

    los

    dispositivos

    de

    la

    familia

    del

    PIC32

    incorporan

    un

    rango

    de

    caractersticasquepuedensignificativamentereducirelconsumoelctricodurantesu

    funcionamiento. Sedebebsicamenteadoscaractersticas:

    Cambio de reloj sobre la marcha: El reloj del dispositivo puede ser

    cambiadobajounsoftwarequecontrolealgunodelos4relojesdurantela

    operacin.

    Instruccionesbasadasenmodosdeahorrodeenerga. Elmicrocontrolador

    puedesuspendertodas lasoperaciones,oselectivamenteapagarelncleo

    mientrasdeja

    activo

    los

    perifricos,

    utilizando

    una

    instruccin

    del

    software.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    54/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    54

    2.2.6.3. Osciladores:

    Toda la familia del PIC32 nos ofrece 4 osciladores diferentes con sus

    correspondientes opciones, lo que le permite al usuario un gran rango de posibles

    eleccioneseneldesarrollodelasaplicacioneshardware. Estasincluyen:

    FRC: Internal oscillator, para velocidades altas de operacin con un

    consumobajo,salidanominalde8MHz.

    LPRC: Internal lowfrequency and lowpower oscillator. Designado para

    velocidades de operacin pequeas con bajo consumo, baja precisin,

    32KHZ.

    POSC:Externalprimaryoscillator.Hasta20MHZ(XThasta10MHz;HSpara

    msde

    10MHz),

    dependiendo

    si

    usamos

    cristal

    de

    cuarzo

    oun

    resonador

    cermico.

    SOSC: External lowfrequency and lowpower, designado para bajas

    velocidadesconuncristalexternode32,768Khz.Utilizadoparatemporizar

    tiempos exactos. Adems es necesario si se quiere usar el mdulo RTCC

    (RealTimeClockandCalendar).

    EC:Externalclock,permiteconectaruncircuitoexternoyreemplazarlopor

    eloscilador,

    proporcionando

    al

    microcontrolador

    una

    onda

    de

    la

    frecuencia

    quequeramos.

    Lasealproducidaporcadarelojpuedesermultiplicadaodivididaparaofrecer

    unanchorangodefrecuenciasatravsdelcircuitoPLL. Estecircuitoproporcionaun

    rango de frecuencias desde 32KHZ hasta la frecuencia mxima especificada por el

    PIC3280MHZ,comentadoenmayorprofundidadenelAnexoBdelpresenteproyecto.

    2.2.6.4. Puertos de comunicacin:

    Lospuertosdecomunicacinsonherramientasquedotanalmicrocontrolador

    de la posibilidad de comunicarse con otros dispositivos externos, otros buses de

    microprocesadores, buses de sistemas, buses de redes ypoder adaptarlosconotros

    elementos bajo otras normas y protocolos. En las aplicaciones de los PIC, estas se

    reducen a entender los protocolos. En general en el PIC32 existen disponibles dos

    tipos,lainterfazdecomunicacinserieasncrona(UART)ylasncrona(SPIyI2C).

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    55/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    55

    ElPIC32proporciona7 formasdecomunicacinperifricade lascuales6son

    enserie. Estasltimasson:

    2UniversalAsynchronousReceiverandTransmitters(UARTs).

    2SPIy2I2C(sncrono).

    Ladiferenciaprincipalentreunacomunicacinsncronayotraasncronaes la

    necesidaddepasarinformacintemporaldesdeelquetransmitealreceptor. Esdecir,

    lacomunicacinsncronanecesitadeuna lneadedicadaparaunasealderelojque

    proporcioneunasincronizacinentreambosdispositivos. As,elqueorigina laseal

    derelojseledenominamaestroyalotroesclavo.

    Interfaz I2C:

    Utilizadoscables,dospinesdelmicrocontrolador:1parael reloj (SCL)yotro

    paratrasmitirlosdatosdeformabidireccional(SDA).

    Requiere10bitsparaconfigurareldispositivoantesdequeseenvecualquier

    dato. Estopermitequeconelmismocablesepuedausarhasta1000dispositivos.

    Interfaz SPI:

    Estainterfazseparalatransmisindedatosendoslneas:unaparalosdatosde

    entrada (SDI) y otra para los de salida (SDO), por tanto requiere otro cable pero

    permitetransferirdatossimultneamenteenambasdirecciones.

    Sin embargo, esta interfaz requiere una lnea fsica adicional (seleccin del

    esclavo, SS) para conectar cada dispositivo. La principal ventaja de la interfaz SPI es

    que es muy simple y la velocidad puede ser mucho ms alta que con la mayor

    velocidad

    del

    bus

    I2C.

    Interfaz UART:

    Norequiereunalneadereloj. Existen2lneasdedatos,TXyRX,lascualesse

    usanparalaentradaysalidadedatos,ysepuedencolocaradicionalmentedoslneas

    quepuedenserusadasparaproporcionarunhardwarehandshake(lneasCTSyRTS).

    Lasincronizacinseobtieneaadiendounbitdestartyotrodestopalosdatos.

    Generalmenteseusaestainterfazcuandoladistanciafsicaesgrande.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    56/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    56

    Interfaz pararela:

    El Parallel Master Port (PMP) se ha aadido a la arquitectura del PIC32 para

    dotardeunbusdeE/Sflexiblepararealizartareascotidianasdelcontroldeperifricos

    externos.

    El

    PMP

    proporciona

    la

    habilidad

    de

    transferir

    datos

    de

    8

    o

    16

    bits

    de

    una

    manerabidireccionalyhasta64Kdeespaciodedirecciones.Ademssepuedeajustar

    eltiempoparaadecuarelPMPalavelocidaddelosperifricosconlosquequeremos

    interactuar.

    2.2.6.5. Conversor A/D:

    Como es muy frecuente el trabajo con seales analgicas, stas deben ser

    convertidas a digital y por ello muchos microcontroladores incorporan un conversor

    A/D,

    el

    cual

    se

    utiliza

    para

    tomar

    datos

    de

    varias

    entradas

    diferentes

    que

    se

    seleccionanmedianteunmultiplexor.

    El PIC32 ofrece la posibilidad de convertir la informacin analgica a digital

    concretamenteatravsdeunmoduloADCde10bits.

    Figura

    2.14:

    Diagramade

    bloques

    del

    mdulo

    ADC

    de

    10

    bits.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    57/230

    CAPTULO2.ELMICROCONTROLADORPIC32:HARDWAREYSOFTWARE

    57

    Como se puede ver en el esquema de bloques anterior, el mdulo A/D pose

    hasta16pinesdeentradasquesepuedenusarpararecibirentradasanalgicas. Estos

    pines estn conectados a2 multiplexores paraseleccionar losdistintos canales y las

    diferentes referencias para cada uno. La salida del convertidor de 10bits se puede

    pasaraenteros

    con

    signo

    osin

    signo

    de

    16

    o

    32

    bits.

    Params informacinsobreelmicrocontroladorserecomiendaver lahojade

    caractersticas del componente disponible en el CDROM adjunto a la memoria del

    presente Proyecto Fin de Carrera [3], el documento PIC32MX Family Reference

    Manual[4]obienladireccinwebdelfabricanteMicrochip[5].

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    58/230

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    59/230

    Manejo de una pantalla tctil con el PIC32 para elcontrol de dispositivos externos.

    3. HERRAMIENTAS SOFTWARE DEDESARROLLO

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    60/230

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    61/230

    61

    CAPTULO

    3.

    HERRAMIENTAS

    SOFTWARE

    DE

    DESARROLLO

    3.1. MPLAB IDE

    3.1.1. INTRODUCCIN

    Elprocesodeescrituradeunaaplicacinsedescribeamenudocomounciclo

    dedesarrollo,yaqueesmuydifcilque todos lospasosefectuadosdesdeeldiseo

    hasta la implementacin se realicen correctamente a la primera. Lamayora de las

    vecesseescribeelcdigo,setesteayluegosemodificaparacrearunaaplicacinque

    funcionecorrectamente(verfigura3.1).

    MPLAB IDE integra todas estas funciones con el fin de no tener que utilizar

    distintasherramientasydiferentesmodosdeoperacin.

    Figura

    3.1:Procesodeescrituradeunaaplicacin.

    El

    software

    MPLAB

    IDE

    de

    Microchip

    [6],

    es

    un

    entorno

    de

    desarrollo

    integrado

    bajoWindows,quepermiteeditar,ensamblar,linkar,depurarysimularproyectospara

    losdistintosdispositivosPICdeMicrochip.

    Dichoentorno incorpora todas lasherramientasnecesariaspara larealizacin

    decualquierproyecto:

    Editordetexto.

    Ensamblador.

    Linkador.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    62/230

    CAPTULO3.HERRAMIENTASSOFTWAREDEDESARROLLO

    62

    Simulador.

    Mensdeayuda.

    Ademsde lasherramientas incorporadas, sepuedenaadirotras comopor

    ejemplo:

    CompiladoresdeC.

    Emuladores.

    Programadores.

    Depuradores.

    Portanto,elentornoMPLABesunsoftwarequejuntoconunemuladoryun

    programador,formanunconjuntodeherramientasdedesarrollo.

    3.1.2. CARACTERSTICAS GENERALES

    Este software esta en ingls y est diseado para trabajar bajo el sistema

    operativodeWindowsenunentornogrficoconventanasybotones.A lo largodel

    presentetrabajovamosatrabajarconlaversindelMPLABIDEv8.33.

    Si observamos la pantalla inicial del programa podemos observar tres reas

    principales, la ventana de edicinMPLAB IDE (color azul), ventana de salida (color

    naranja)yelpaneldenavegacinalaizquierdadelamisma(colorverde). Laventana

    deedicin

    es

    el

    editor

    de

    cdigo,

    donde

    vamos

    aescribir

    nuestro

    programa,

    mientras

    queenlaventanadesalidasemostrarlainformacinyelestadodelaltimaaccin

    realizada.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    63/230

    CAPTULO3.HERRAMIENTASSOFTWAREDEDESARROLLO

    63

    Figura

    3.2:PantallainicialdelMPLABIDE.

    Por otra parte, en el panel de navegacin se pueden ver dos tabulaciones

    etiquetadas como Archivos y Smbolos. La etiqueta de archivos nos da acceso al

    organizadorProjectmanager,elcualnospermiteorganizarnuestrosarchivospara

    unproyecto. Esdedestacarquenoesnecesarioincluirelarchivolinkerenlaventana

    denuestroproyecto. ConelPIC32, seusar automticamenteparaelenlazadoun

    linkerpor

    defecto,

    sin

    embargo,

    en

    el

    caso

    de

    que

    se

    considere

    oportuno

    se

    podr

    incluirunoenconcreto.

    Adems,unade lascaractersticasdeldepuradorparaelPIC32quenosofrece

    elMPLAB IDE, es que posee un puerto de datos para depurar. Esto proporciona al

    depuradorlacapacidaddeenviaryrecibirmensajesatravsdeunaconsola,lacualla

    vamosautilizarenalgunasde lasaplicacionesdesarrolladas (semuestraunejemplo

    de esta consola en el apartado 2 del captulo 4), mediante el uso de la librera

    db_utils.h.

    3.1.3. ESTRUCTURA DE UN PROYECTO

    Unproyectoesunconjuntodeprogramasqueseintegranenunnicomdulo

    con el fin de generar un cdigo ejecutable para un determinadomicrocontrolador.

    Dichos

    programas

    pueden

    estar

    escritos

    en

    diferentes

    lenguajes

    de

    programacin,

    comoporejemploensamblador,C,Basic,Pascal.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    64/230

    CAPTULO3.HERRAMIENTASSOFTWAREDEDESARROLLO

    64

    AcontinuacinsemuestralaestructuradeunproyectocreadoconMPLAB,as

    comosusficherosdeentradaysalida:

    Figura

    3.3:

    Estructura

    de

    un

    proyecto

    con

    el

    MPLAB

    IDE.

    Losficherosfuente(puedenservarios),puedenestarescritosenensamblador

    o en C, con extensiones .asm y .c respectivamente, y mediante los programas

    ensambladorycompilador,seobtienenlosficherosobjetoconextensin.o.

    Todos los ficherosobjeto,juntoaotros ficherosprocedentesde libreras,son

    linkados,generandounaseriedeficherosdesalidadeloscualeselmsimportantees

    el

    ejecutable

    .HEX

    que

    ser

    el

    que

    se

    grabar

    en

    el

    dispositivo.

    3.1.4. CREACIN DE UN PROYECTO

    Un proyecto contiene todos los archivos necesarios para construir una

    aplicacin (cdigo fuente, ficheros de cabecera, libreras, etc), as como sus

    correspondientesopcionesdeconstruccin.Generalmentehabrunsoloproyectopor

    workspace.

    Porotraparte,unworskspacecontiene:unoomsproyectos,informacindel

    dispositivoseleccionado,laherramientadeprogramacinydepuracinylasopciones

    deconfiguracindelMPLABIDE.

    Adems, el MPLAB IDE contiene un asistente para ayudar a crear nuevos

    proyectos. Detalformaqueelprocesodecreacindeunproyectosepuededividiren

    8tareas

    las

    cuales

    vamos

    air

    describiendo

    paso

    apaso

    con

    tal

    de

    crear

    un

    proyecto

    paraejecutarloenelStarterKit(Capitulo4),primeratarjetaevaluada:

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    65/230

    CAPTULO3.HERRAMIENTASSOFTWAREDEDESARROLLO

    65

    1.- Seleccin del dispositivo:

    Abrimos el MPLAB IDE y lo primero que tenemos que realizar es cerrar

    cualquier worksapce que estuviera abierto, para ello realizamos clic en file>Close.

    Posteriormentehacemos

    clic

    en

    Project>Project

    Wizard,

    para

    abrir

    el

    asistente

    de

    creacindeunproyecto nuevo,detalformaquesenosabrirunaventanacomo la

    quesemuestraacontinuacin:

    Figura

    3.4:Creacindeunproyecto,seleccindeldispositivo.

    Enel

    men

    desplegable

    seleccionamos

    el

    dispositivo,

    en

    nuestro

    caso

    PIC32MX360F512LyledamosaNEXT.Entoncessenosabrirotra ventana,comola

    quemostramosenelsiguientepunto.

    2.- Seleccin del Lenguaje de trabajo:

    Figura

    3.5:

    Creacindeunproyecto,seleccindelcompiladoryellinkado.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    66/230

    CAPTULO3.HERRAMIENTASSOFTWAREDEDESARROLLO

    66

    Enestaventanatenemosqueseleccionarelcompiladorquevamosausarenel

    programaascomoellinker,ambossehandescargadodelapginademicrochip[7].

    EnActiveToolsuiteseleccionamosdelalistadesplegableMicrochipPIC32C

    CompilerToolsSuite. Laherramientadetrabajo incluyeelensambladoryel linkado

    que usaremos. Si la opcin del compilador no est disponible, hay que activar la

    casillashowallinstalledtoolsuites.

    Eneldesplegablede contenidosde lasherramientas, seleccionamosMPLAB

    C32CCompiler (pic32gcc.exe) yabajo,en Location,hacemos clicen Browse y

    seleccionamos la siguiente ruta que contiene el archivo seleccionado antes:

    C:\ProgramFiles\Microchip\MPLABC32\bin\pic32gcc.exe.

    Porltimo seleccionamoseneldesplegable anterior MPLAB32 LINKObject

    linker(pic20

    ld.exe)

    ycomprobamos

    que

    la

    ruta

    es

    la

    siguientec:\Program

    Files\Microchip\MPLABC32\bin\pic32Id.exe. HacemosclicenNEXTparacontinuar.

    3.- Nombrar el proyecto

    Senosabrirunapantallacomolaquesemuestraacontinuacin:

    Figura

    3.6:

    Creacindeunproyecto,nombrarelproyecto.

    En esta una nueva ventana seleccionamos la carpeta en la que queremos

    guardar nuestro proyecto y le damos un nombre al mismo, por ejemplo

    C:\MiProyecto\Luces. HacemosclicenNEXTparacontinuar.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    67/230

    CAPTULO3.HERRAMIENTASSOFTWAREDEDESARROLLO

    67

    4.-Aadir los archivos a tu proyecto:

    Figura

    3.7:

    Creacinde

    un

    proyecto,

    aadir

    archivos

    al

    proyecto.

    Silosarchivosen.caunnoloshemoscreadopodremossaltarestapantallay

    ya losaadiremosposteriormente. HacemosclicenFinishparaterminarycerramos

    la ventana. Al cerrar la ventana, se ha creado en el MPLAB IDE el proyecto y el

    workspace, con los siguientes nombres: el workspace Luces.mcw y el archivo del

    proyectoLuces.mcp.

    Hacemos

    clic

    en

    Files>New

    en

    la

    barra

    del

    men

    para

    crear

    un

    archivo

    nuevo

    en

    el que comenzar a escribir nuestro programa. Antes que nada, lo guardamos en

    File>SaveAscomoLuces.cenlamismacarpetaenlaquehemoscreadoelproyecto.

    Es importante escribir la extensin .c para que el MPLAB lo reconozca como un

    fichero fuente. Ahora escribimos el cdigo en c para ejecutar el ejemplo.Una vez

    escritoelcdigoaadimoselarchivoLuces.caldirectoriode fuentestalycomose

    puedeapreciarenlasiguientefigura:

    Figura

    3.8:

    Aadirarchivosalproyectodesdeelmenprincipal.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    68/230

    CAPTULO3.HERRAMIENTASSOFTWAREDEDESARROLLO

    68

    Posteriormente, seleccionamos nuestro depurador, clic en Debugger>Select

    Tool>PIC32MX Starter Kit de la barra de men. Antes de seleccionarlo, hay que

    asegurarsequenuestroStarterKitestconectadoanuestroPCatravsdelcableUSB.

    Una vez lohayamos conectado,en la ventanade salidadelMPLAB, semostrarun

    mensajeen

    el

    que

    nos

    indicar

    Starter

    kit

    Found,

    ala

    vez

    que

    el

    LED

    naranja

    de

    depuracindelatarjetaseencender.

    5.- Confirmar las opciones de configuracin.

    HacemosclicenConfigure>ConfigurationBitsparaconfirmarque lasopciones

    deconfiguracindenuestromicrocontroladorson lasquequeramos. Acontinuacin

    semuestraunaconfiguracintpicaparaelStarterKit:

    Figura

    3.9:

    Resumendelasopcionesdeconfiguracin,configurationbits.

    6.- Construir el proyecto:

    Hacemos clic en Project>Build all en la barra delmen yobservamos (en la

    ventanadesalida)queelprocesotranscurrasinerroreshastaqueaparezcaelmensaje

    BUILDSUCCEEDED,momentoenelqueelprogramaestarpreparadoparaque lo

    probemosenelStarterKit.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    69/230

    CAPTULO3.HERRAMIENTASSOFTWAREDEDESARROLLO

    69

    Figura3.10:Construccindelprograma,build.

    7.- Programar el dispositivo

    HacemoscliceneliconodeProgramAllMemoriesenlabarraHerramientasdel

    dispositivo,talycomomuestralafigura,contaldeprogramarelmismo:

    Figura

    3.11:

    Programarelmicrocontrolador.

    Una vez pulsado, nos aparecer un mensaje advirtindonos acerca de que

    vamos a sobrescribir lamemoria, le damos a Yes para continuar. En la ventana de

    salida nos fijamos en el progreso y cuando aparezca DONE significar que la

    programacindeldispositivohasidocompletada.Estoverificaque la imagenhasido

    cargadaenlamemoriaFlashyestpreparadaparasuejecucin.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    70/230

    CAPTULO3.HERRAMIENTASSOFTWAREDEDESARROLLO

    70

    Figura

    3.12:

    Verificacinde

    la

    programacin

    en

    el

    dispositivo.

    8.- Probar el programa:

    UnavezprogramadalamemoriadeldispositivohacemosclicenDebugger>Run

    enlabarradelmenoeneliconodeRun(colorazul)enelmendeldepuradortaly

    como indica la siguiente figura, comenzando el funcionamiento del programa en

    nuestroStarter

    Kit.

    Figura

    3.13:

    Ejecutarelprogramaenmododebugger.

    Parapararelprogramaprimero tenemosquehacer clicen Halt (pausa) y

    posteriormenteenReset(colorpurpura).

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    71/230

    CAPTULO3.HERRAMIENTASSOFTWAREDEDESARROLLO

    71

    3.2. SOFTWARE DE GRABACIN

    3.2.1. INTRODUCCIN

    Losmicrocontroladores

    en

    general,

    ylos

    de

    la

    empresa

    Microchip

    en

    particular,

    necesitandeun circuitoelectrnicoquepermita transferirleselprograma realizado

    desdeelordenador.Existenmuchasmanerasdeafrontaresteproblema,yengeneral

    sesueleutilizaralgunodelospuertosdisponiblesencualquierordenadorparaestefin.

    Porello,enelmercadoesposibleconseguirprogramadoresdePICsconconexinpara

    puertoUSB,paralelooserie(RS232).

    3.2.2. SOFTWARE DE GRABACIN

    Para grabar los programas en el PIC32, existenmltiples opciones as como

    distintos software. En el presente trabajo se ha utilizado el MPLAB ICD3 InCircuit

    Debuggerparalagrabacinydepuracindelcdigo,elcualseconectadirectamentea

    laExplorer16(Captulo5)atravsdelconectorreservadoparaello.Detalformaque

    estegrabadorseconectaa laExplorer16medianteuncablemodularyalordenador

    medianteun cableUSB. Esta versindelprogramador ICD3eshasta15 vecesms

    rpidaquesuversinanterior[8].Adems,nonecesitadeunafuentedealimentacin

    externa,yaqueestalarecibedesdeelordenadoratravsdelcableUSB.

    Porotraparte,paraqueelordenadorpuedarealizarlasdiferentesopcionesde

    grabacin,senecesita tener instaladoelprogramaMPLAB IDEensuversin8.15ao

    superior. EnnuestrocasovamosatrabajarconlaversinMPLABIDEv8.33,talycomo

    yahemoscomentadoanteriormente.

    Figura3.14:MPLABICD3InCircuitDebugger.

    MduloICD3

    (pastillade

    grabacin)

    Conectores

    USB

    Tarjetade

    Test

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    72/230

    CAPTULO3.HERRAMIENTASSOFTWAREDEDESARROLLO

    72

    La pastilla de grabacin dispone tambin de 3 luces indicadoras las cuales

    poseenlossiguientessignificados.ElLeddePowersepondrdecolorverdecuando

    seconectealordenador,indicandoqueyaestconectadoacorriente.ElLEDactive

    se pondr de color azul cuando se le suministre energa o cuando se conecte a la

    tarjeta.Por

    otra

    parte

    el

    LED

    Status

    puede

    tener

    3configuraciones

    distintas:

    si

    esta

    de color verde, significaqueeldepuradorestoperando correctamenteobienque

    esteseencuentraenstandby;siesdecolorrojoesquealgunaoperacinhafalladoy

    porltimosiesdecolornaranjasignificaqueeldepuradorestocupado.

    Adems dispone de una tarjeta de Test, la cual se usa para verificar que el

    MPLABICD3funcionacorrectamente.Estatarjetalapodemosverenlafigura3.13,en

    elextremoalqueseencuentraconectadoelcablemodular.

    3.2.3. GRABAR EN LA EXPLORER16 MEDIANTE ICD3

    Enesteapartadovamosadescribirlospasosquehayquerealizaralahorade

    depurar o grabar un programa mediante el uso del MPLAB ICD3 bajo el entorno

    MPLABIDEv8.33,ademsse indicantodoslosaspectosquehayquetenerencuenta

    parallevarloacabo.

    Lospasos

    necesarios

    para

    grabar

    un

    programa

    yverificar

    su

    funcionamiento

    medianteelusodeMPLABICD3IncircuitDebuggersonlossiguientes:

    Primero tenemosqueasegurarnosquealabrirelprograma tengamos

    seleccionadonuestrodispositivoenConfigure>SelectDevice.

    Nos aseguramos que los bits de configuracin son los correctos,

    Configure>Configuration Bits y posteriormente seleccionamos

    Debugger>Select Tool>ICD 3, MPLAB ICD3 incircuit debugger, para

    depurar

    el

    cdigo.

    Construimos el programa para crear el archivo de grabacin con la

    extensin.HEX,mediantelaopcinBuildAll.Nostenemosqueasegurar

    que el interruptor S2 est en PIM, para que funcione correctamente

    nuestromicrocontrolador,encasocontrariodarunerror.

    Cargamoselprogramaen laExplorer16parasudepuracin. Paraello

    debugger>Program. Una vez realizado ya podemos comprobar el

    funcionamientodelprogramadndolearun. Hastaestepuntoesmuy

    similarrespecto

    ala

    forma

    de

    depurar

    en

    el

    Starter

    Kit.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    73/230

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    74/230

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    75/230

    Manejo de una pantalla tctil con el PIC32 para elcontrol de dispositivos externos.

    4. TARJETA DE EVALUACIN PARAEL PIC32: STARTER KIT

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    76/230

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    77/230

    77

    CAPTULO4.TARJETADEEVALUACINPARAEL

    PIC32:

    STARTER

    KIT

    4.1. INTRODUCCIN

    Como ya hemos comentado en el captulo anterior, la idea de realizar este

    proyecto surgi trasel lanzamiento almercadodelpotentemicrocontroladorPIC32

    juntoconunaseriedeherramientasdedesarrolloquefacilitabansuuso.Enconcreto,

    elequipodeevaluacinPIC32Starterkit,elcualfacilitamucholainteraccinconeste

    novedosomicrocontrolador.

    Este

    kit

    inicial

    para

    el

    PIC32

    representa

    un

    mtodo

    simple

    ydebajocosteparallevaracabounprimercontactoconlosmicrocontroladoresde32

    bits.Ademsel kit incluye todo lo necesariopara escribirunprograma,efectuar el

    depuradoyejecutarelcdigoenunmicrocontroladorPIC32.

    Figura4.1:SistemadeevaluacinPIC32StarterKit.

    Adems,juntoconelkit,se incluyeunCdquecontieneelsoftwarenecesario

    para la grabacin y depuracin vaUSB de los programas ejemplos incluidos en el

    mismoyquecomentaremosenelapartado4.2.Por loqueestosprogramaspueden

    servir como base a la hora de elaborar los primeros programas con la familia de

    microcontroladoresPIC32.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    78/230

    CAPTULO4.TARJETADEEVALUACINPARAELPIC32:STARTERKIT

    78

    4.1.1. CARACTERSTICAS GENERALES

    A continuacin se enumeran las principales caractersticas del sistema de

    evaluacin

    PIC32

    Starter

    Kit:

    1. Microcontroladorde32bitPIC32MX360F512Lcon512KBdememoriaFlash

    y32KBdeRAM.

    2. Enlatarjeta,relojde8MHz.

    3. MicrocontroladorPIC18LF4550paradepuraryprogramar.

    4. ConectividadmedianteUSBparalascomunicacionesdedepuracin.

    5. IndicadorLednaranjadedepuracin.

    6. Trespulsadores.7. TresLedsdedistintoscolores,definidosporelusuario.

    Figura

    4.2:ComponentesdelsistemadeevaluacinPIC32StarterKit.

    1

    2

    3

    4

    5

    6 7

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    79/230

    CAPTULO4.TARJETADEEVALUACINPARAELPIC32:STARTERKIT

    79

    4.1.2. ARQUITECTURA DE LA TARJETA PIC32 STARTER KIT

    En este apartado se realiza una explicacin exhaustiva del sistema deevaluacinPIC32StarterKit.

    Suministroelctrico:

    HaydosformasdesuministrarlaenergaalPIC32delStarterKit:

    CableUSBconectadoaJ1.

    Una tarjeta externa con un suministro elctrico regulado para corriente

    continuaqueproporcione+5VyqueseconecteaJ2delStarterKit,situado

    enlaparteposteriordelatarjetadeevaluacin.

    ConectividadUSB:

    ElPIC32MXStarterKit incluyeunmicrocontroladorPIC18LF4550USB,el cual

    proporciona la conectividad y el soporte del protocolo USB. El cableado desde

    PIC18LF4550alPIC32MXnosproporcionadostiposdeconectividad:

    PinsdeE/SdelPIC18LF4550aICSPpinsdelPIC32MX

    Pins

    de

    E/S

    del

    PIC18LF4550

    aJTAG

    pins

    del

    PIC32MX

    ElPIC32MXStarterKitusacomnmente lospinesdel JTAGdelPIC32MXpara

    programarydepurar. Laprimeravezqueseenchufa,elPIC18LF4550secargaconel

    firmwareUSB.Adems,mediante laconexinUSBsepuedeactualizardeuna forma

    muysencillaelfirmwaredeldispositivo.

    Interruptores:

    Latarjetadeevaluacindisponedelossiguientespulsadores:

    SW1:InterruptoractivobajoconectadoaRD6

    SW2:InterruptoractivobajoconectadoaRD7

    SW3:InterruptoractivobajoconectadoaRD13

    Estos interruptores no tienen ningn circuito antirebote y requieren el uso

    internoderesistenciasconectadasa+5V. Portanto, los interruptoresestarnanivel

    alto(3,3V)

    cuando

    no

    se

    pulsan

    ycuando

    los

    presionamos

    se

    encontrarn

    anivel

    bajo.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    80/230

    CAPTULO4.TARJETADEEVALUACINPARAELPIC32:STARTERKIT

    80

    LEDS:

    Los3ledsdisponiblesseencuentranconectadosalaslneas0,1y2delpuerto

    D.Paraqueseenciendanestosleds,lospinesdelPORTDcorrespondientessetendrn

    queponeranivelaltoparaqueseenciendan. Adems,cadaunodeestosledstienen

    uncolordistinto,rojo,naranjayverdetalycomopodemosverenlaFigura4.3.

    Figura4.3:PIC32StarterKit,Ledsencendidos.

    OpcionesdelOscilador:

    Elmicrocontrolador

    de

    la

    tarjeta

    de

    evaluacin

    tiene

    un

    circuito

    oscilador

    el

    cualseencuentraconectadoaeste. Elosciladorprincipal(Y2)usaunrelojde8MHzy

    actacomoelosciladorprimariodelcontrolador. Portanto,noesnecesarioelusode

    un cristal externo para usar el PIC32. En caso de que queramos se podr usar el

    osciladorinternodelmicrocontrolador.

    Porotraparte,elrelojdelPIC18LF4550es independientedelPIC32MXytiene

    supropiocristalde8MHz(Y1).

    Conectorparaexpansinmodularde120pin(J2):

    LaplacadelPIC32MXStarterKithasidodiseadaconunainterfazdeexpansin

    modular de 120 pins (situada en la parte trasera de la tarjeta, ver figura 4.4). Esta

    interfazproporciona a laplacaunelementomodularparaposibles ampliacionesde

    nuevas tecnologas que puedan aparecer en el futuro, haciendo de la tarjeta un

    elemento flexible.Asmismoesteconectornosvaaservirmsadelanteparapoder

    conectarestatarjetaa laExplorer16ascomoa la I/OExpansinBoardqueveremos

    enlos

    captulos

    5y7respectivamente.

    LEDs

    Pulsadores

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    81/230

    CAPTULO4.TARJETADEEVALUACINPARAELPIC32:STARTERKIT

    81

    Figura

    4.4:Conectorparaexpansinmodularde120pinsy/oalimentacindelatarjeta.

    Acontinuacinmostramoseldiagramadebloquesdealtoniveldelatarjetade

    evaluacinPIC32StarterKit:

    Figura4.5:DiagramadeBloquesdelatarjetadeevaluacinPIC32StarterKit.

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    82/230

    CAPTULO4.TARJETADEEVALUACINPARAELPIC32:STARTERKIT

    82

    4.2. PROGRAMAS UTILIZADOS PARA VERIFICAR STARTER KIT

    Acontinuacinsedetallanalgunosdelosprogramas utilizadosparacomprobar

    elfuncionamiento

    de

    la

    tarjeta

    de

    evaluacin.

    Hay

    que

    tener

    en

    cuenta,

    que

    al

    ser

    una

    tarjetadeevaluacinsinmuchosmdulosconlonicoquesepuedeoperaresconlos

    pulsadoresyconlosledsdedistintoscolores.

    Elprimerprogramaevaluado (StarterKitTutorial.c)sigueelsiguientediagrama

    deflujo:

  • 7/25/2019 Microcontrolador y Pantalla Touch_ Buen Material

    83/230

    CAPTULO4.TARJETADEEVALUACINPARAELPIC32:STARTERKIT

    83

    Esteprimerprograma incluye la libreraDebugprint (db_utils.h) con laque

    vamosasercapacesdemostrarmensajesporpantallaa laesperadeunarespuesta

    porpartedelusuario. Enestecuadrosenosvaa indicarquedebemosde introducir

    unadelasletrasquesenosindicanenlaventanadesalida,estasson:E,R,O,G,X,sila

    entradano

    se

    corresponde

    con

    ninguna

    de

    estas

    letras

    se

    mostrar

    un

    mensaje

    de

    erroryse intercambiarelestadodecadaLED (verdiagramade flujoanterior).Por

    tanto, el programa responder con una accin u otra dependiendo de la letra

    introducida. A continuacinmostramos el cuadro de dilogo (figura 4.6) en el que

    introducimosnuestraeleccinascomo losmensajesquesemuestranen laventana