Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
TutorialparaIniciacindeunproyectoenCodeWarriorv10.6
AliniciarlasesinconelCodeWarriorloprimeroquenospideelIDEesquecreemoso
elijamosun"workspace"(unespaciodetrabajo)paratrabajar.Creamosunworkspaceen
unacarpetaaeleccinutilizandoelbotn"Browse"paraelegirlaubicacindelmismo.
Se abre el espacio de trabajo en el cual debemos crear nuestro propio proyecto, para
procedervamosacerrarlaventana"Wellcome"quemeguiaraenlospasosparacrearun
1
1Parte
CodeWarriorV10.6
nuevo proyecto ya que procederemos a hacerlo paso a paso desde la perspectiva del
editor,comocorresponde.
Abrimoselmen"File">solapa"New">solapa"BareBoardProject"
Sedespliegalaventanaquesemuestraenlacapturadepantalladeabajoyenelcampo
correspondienteescribimosunnombredeproyecto,enestecaso"Blinking",presionamos
"Next".Notequedestildandolaopcin"Usedefaultlocation"(utilicelaubicacinpor
2
1Parte
CodeWarriorV10.6
Sedespliegaentonceselmen"Conections",deseleccionamoslaopcinquevienetildada
pordefectoquecorrespondeaunadelasplacasdedesarrolloutilizadascomnmentey
seleccionamos la opcin "Open Source BDM" con la cual determinamos el tipo de
programador que vamos a utilizar (EBDM); tambin seleccionamos la opcin "P&E Full
Chip Simulator",estame permitir realizar la simulacin del proyecto sin necesidad de
tenerconectadalaplacadedebuggeryprogramacin.Presionamos"Next"
3
1Parte
CodeWarriorV10.6
Sedespliegaacontinuacinlaventana"Languajes"yconservamosseleccionadalaopcin
"C",yaquevamosaprogramarutilizandoellenguajeC.Notequeparautilizarlaopcin
"Absolute Assembly" debemos des tildar las tres opciones anteriores ya que no son
compatibles con esta ltima. Presionamos "Next". Se despliega entonces la ventana
"RapidApplicationDevelopment"(DesarrolloRpidodeAplicacionesabreviadoRAD),
4
1Parte
CodeWarriorV10.6
mdulos que necesite utilizar del MCU. Tambin debo seleccionar la opcin "Hardware
configuration" que me permitir inicializar dichos los mdulos y utilizar las funciones
asociadas aestos directamente utilizandolaaplicacinProcessorExpert.Luegopresiono
"Next".Seabreentonceslaventana"C/C++Opciones"ydejolasopcionespordefecto.
5
1Parte
CodeWarriorV10.6
Elprogramacreaelproyectoymedevuelveelcontrolenlasiguientepantalla:
Elencapsuladopordefecto,quesemuestraenlapantalla,nosecorrespondeconelque
vamosautilizarennuestroproyecto,queeselencapsuladoPDIPde20pines.
Paracambiarel encapsulado,presionamos elbotn "SelectPackageForTheProcessor"
queseveresaltadoenlacapturadepantalla.
6
1Parte
CodeWarriorV10.6
7
1Parte
CodeWarriorV10.6
variantedeCPUseleccionada.Estapreguntasedebeaquealefectuarestecambio,nose
preservanlasconfiguracionesutilizadasanteriormenteparaRAM/ROM.estosolotendria
relevanciasidecidiramoscambiarelencapsuladocuandoyaelproyectollevaunestado
avanzado de desarrollo, cosa que en nuestro caso no es lo que sucede, por tal motivo
presionamoselbotn"YES"aceptandoesto.
CodeWarriorV10.6
DesarrollodeunProyectoenCodeWarriorV10.6
A continuacin vamos a preparar las ventanas que necesitamos para el desarrollo de
nuestroproyectoqueconsistirenunaaplicacinqueharparpadearunledconectadoa
un pin determinado de un puerto del MCU; los tiempos de parpadeo, es decir su
frecuencia,secontrolaranmediantelautilizacindeuntimer.
Cerramos la ventana "Commander" ya que no vamos a utilizarla. Luego, en el men
"Window"seleccionamos"ShowView">"Other...".
9
1Parte
CodeWarriorV10.6
Sedespliegalaventana"ShowView"enlacualdesplegamoselmencorrespondienteal
"ProcessorExpert"enelcualseleccionamos"ComponentLibrary".Presionamos"OK"
CodeWarriorV10.6
Estodesplegaralaventana"ComponenetsBlinking"quesemuestraenelespacioinferior
izquierdoenlacapturadepantalladeabajo.Enestaventanapodremosverlosmduloso
componentesquevamosagregandoanuestroproyectoparasuposteriorconfiguraciny
utilizacin.
11
1Parte
CodeWarriorV10.6
Dentrodelmen"PortI/O"seobservanvarioscomponentes.Vamosaelegirelprimero
("BitIO")yaquesoloutilizaremosunbitdepuerto.Sinecesitamosutilizarmsdeunbit
12
1Parte
CodeWarriorV10.6
depuertoounbytecompletodepuerto,podremosseleccionarotrodeloscomponentes
listadosdentrodeestemen.Seleccionamos,entonces,elcomponente"BitIO",hacemos
clickderechoyseleccionamos"Addtoproject"paraagregarestecomponentealproyecto
queestamosdesarrollando.
Elnuevocomponenteapareceenlapantalla"ComponenetsBlonking"comoseaprecia
enlacapturadepantalladeabajo.
13
1Parte
CodeWarriorV10.6
Luegorepetimoselprocedimientodesplegandoelmen"Timer",delcualseleccionamos
en componente "TimerInt"; este componente me permite programar interrupciones a
intervalosdetiempoconfigurables(Interrupcionesperidicas).
14
1Parte
CodeWarriorV10.6
vamosaseleccionarinpindepuertodeterminado,clickeandosobreelcampo"Value"de
laopcin"PinforI/O".ElegimoselPin"PTC2".comosemuestraabajo.
15
1Parte
CodeWarriorV10.6
En el campo "Value" de la opcin "Slew rate control for PTC2" selecciono "Yes" paca
configurar el control de velocidad de cambio del pin para reducir la emisiones electro
magnticaspropiasdelosprocesosdeconmutacinenlospinesdepuerto.
Deestemodoelpinqueseconectaralledencuestinseconfigurcomopindesalida
porPTC2concontroldeslewrateycapacidaddemanejodealtacorriente(DriveStrength
forPTC2=Hight).LaconfiguracindelpinPTC2puedeobservarseabajo.
16
1Parte
CodeWarriorV10.6
Para configurar el componente "TimerInt" hacemos doble click izquierdo sobre dicho
componente en la ventana "Componenets blinking". Se observa en la captura de
pantalla que la opcin "Interrupt period" aparece resaltada en rojo. Esta indicacin de
errorsedebeaqueesnecesarioconfigurarelperiododeinterrupcindelcomponente
esdecireltiempoquepasarentrecadainterrupcin.Estoseconfiguraseleccionandoel
campo "Value". Se despliega entonces una ventana en laque puedoseleccionarde una
lista,eltiempodeseadoentrecadainterrupcindeltimer.enestecasoseleccionamosel
valor"262,144ms".
17
1Parte
CodeWarriorV10.6
Enlacapturadeabajoseobservalaconfiguracindelcomponente"TimerInt".
El componente "TimerInt" que configurado para generar una interrupcin cada 262,144
ms.
Desplegandoelmendelcomponente"TimerInt",seobservanlasfuncionesdisponibles
paraestecomponente.Comopuedeobservarseenlacapturadeabajo,lasfuncionesque
tieneuna"x"enrojosobresuicono,sonlasquenoseencuentranhabilitadas,porloque
elProcessorExpertnopodrgenerarelcdigocorrespondienteparautilizarlas.Eselcaso
delafuncin"Enable"
18
1Parte
CodeWarriorV10.6
Acontinuacindesplegamoselmendelcomponente"BitIO"enlaventana"Components
Blinking" y observamos las funciones disponibles para este componente. De estas
funcionesdisponiblesvamosautilizarlasfunciones"SetVal"y"NegVal"quesirvenpara,
19
1Parte
CodeWarriorV10.6
respectivamente, sacar un uno lgico por el pin seleccionado y para invertir (negar) el
estadolgicoactualdelpin.Comolafuncin"NegVal"noesthabilitada,procedemosa
habilitarlarepitiendolospasoquehicimosparalafuncin"Enable"deltimer.
Estoseobservaenlacapturadeabajo.
Unavezhabilitadaslasfuncionesquenecesitamos,procedemosagenerarelcdigoque
configurarlosmdulosautilizarenelproyecto.Estecdigologeneraautomticamente
elProcessorExpert.Paragenerarelcdigodeconfiguracindelosmdulospresionamos
elbotn"GenerateProcessorExpertcode"comoseobservaenlacapturadeabajo.
20
1Parte
CodeWarriorV10.6
Segeneraaselcdigodeconfiguracindelosmdulosseleccionados.
21
1Parte
CodeWarriorV10.6
Enestemomentopodemosrealizarlaprimera"construccin"denuestroproyecto.Para
construir nuestro proyecto desplegamos elmenu "Project" > "BuildAll". Este comando
efectala"construccin"detodoslosarchivosquecomponenelproyecto.
Elprocesode"construccin"deunproyectopuedellevaruntiempo.
22
1Parte
CodeWarriorV10.6
23
1Parte
CodeWarriorV10.6
24
1Parte