You are on page 1of 3

4.

Para el desarrollo de nuestro proyecto necesitaremos utilizar dos mdulos:

El Puerto de Entrada/Salida, para encender y apagar el led

El Timer, para controlar la frecuencia de parpadeo, es decir el tiempo


de encendido y apagado.

Para agregar estos mdulos al proyecto, busco en "Componenets Library" "CPU


Internal Peripherals" "Port I/O". BitIO

hacemos click derecho y seleccionamos "Add to project". El nuevo componente


aparece en la pantalla "Componenets Blinking"

Luego repetimos el procedimiento desplegando el men "Timer", del cual


seleccionamos en componente "TimerInt"; este componente me permite programar
interrupciones a intervalos de tiempo configurables.

Proceso de configuracin de mdulos.

TimerInt

Para configurar el componente "TimerInt" hacemos doble click izquierdo sobre dicho
componente en la ventana "Componenets blinking". la opcin "Interrupt period"
aparece resaltada en rojo. Esta indicacin de error se debe a que es necesario configurar
el periodo de interrupcin del componente es decir el tiempo que pasar entre cada
interrupcin. Esto se configura seleccionando el campo "Value". Se despliega entonces
una ventana en la que puedo seleccionar de una lista, el tiempo deseado entre cada
interrupcin del timer. en este caso seleccionamos el valor "262,144 ms

El componente "TimerInt" que configurado para generar una interrupcin cada 262,144
ms. Desplegando el men del componente "TimerInt", se observan las funciones
disponibles para este componente.

Las funciones que tiene una "x" en rojo sobre su icono, son las que no se encuentran
habilitadas, por lo que el Processor Expert no podr generar el cdigo correspondiente
para utilizarlas. Es el caso de la funcin "Enable".

Para habilitar la generacin del cdigo correspondiente para la utilizacin de la funcin


"Enable", desplegamos la solapa "Methods" en la ventana "Componenet Inspector" y en
el campo "Value" seleccionamos "Generate code". Luego podemos observar que la "x"
en rojo desaparece del icono de la funcin "Enable".
BitIO

Haciendo doble click izquierdo sobres el componente "BitIO" en la ventana


"Componentes blinking", se despliega la ventana "Component Inspector" como se
observa abajo. clickeando sobre el campo "Value" de la opcin "Pin for I/O". Elegimos
el Pin "PTC2".

En el campo "Value" de la opcin "Direction" selecciono "Output", configuro de esta


manera al pin seleccionado como pin de salida. 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 magnticas propias de los procesos de
conmutacin en los pines de puerto. De este modo el pin que se conectar al led en
cuestin se configur como pin de salida por PTC2 con control de slew rate y capacidad
de manejo de alta corriente (Drive Strength for PTC2 = Hight). A continuacin
desplegamos el men del componente "BitIO" en la ventana "Components Blinking"
y observamos las funciones disponibles para este componente. De estas funciones
disponibles vamos a utilizar las funciones "SetVal" y "NegVal" que sirven para,
respectivamente, sacar un uno lgico por el pin seleccionado y para invertir (negar) el
estado lgico actual del pin. Como la funcin "NegVal" no est habilitada, procedemos
a habilitarla repitiendo los paso que hicimos para la funcin "Enable" del timer

Una vez habilitadas las funciones que necesitamos, procedemos a generar el cdigo que
configurar los mdulos a utilizar en el proyecto. Este cdigo lo genera
automticamente el Processor Expert. Para generar el cdigo de configuracin de los
mdulos presionamos el botn "Generate Processor Expert code" .Se genera as el
cdigo de configuracin de los mdulos seleccionados.

Funcionamiento del programa:

Consiste en inicializar el componente "TimerInt" y ejecutar la funcin "SetVal" que


sacar un estado lgico alto (uno lgico) por el Pin PTC2 al iniciar la aplicacin y
entrar a continuacin en un lazo infinito. Una vez inicializado el "TimerInt" este
generar una interrupcin al cabo del tiempo con que ha sido configurado (262,144 ms
en nuestro caso). Al atenderse la interrupcin del Timer, el programa saltar desde el
lazo infinito al espacio destinado a la atencin de dicha interrupcin para ejecutar la
subrutina de interrupcin asociada al Timer. En este espacio ejecutar la funcin
"NegVal" que invertir el estado lgico actual de la salida del Pin PTC2, y retornar
luego al lazo infinito en "main.c" en el que permanecer hasta la prxima interrupcin
del Timer; de esta manera, la salida del led se pondr a uno y a cero lgicos
alternadamente, ya que su estado lgico se invertir con cada pasada por "NegVal"
ubicada en la subrutina de interrupcin del Timer.
Ahora bien, para desarrollar nos ubicamos en el archivo "main.c" y hacemos espacio
luego del comentario "write your code here" que se encuentra despus de la funcin
PE_low_level_init() que realiza la inicializacin interna del Processor Expert;

desplegamos las funciones del componente "TimerInt"

arrastramos la funcin "Enable", desde la ventana "Componentes Blinking" al espacio


creado en el archivo "main.c" en el editor.

Desplegamos las funciones del componente "BitIO" y arrastramos la funcin "SetVal" y


la ubicamos debajo da la funcin de habilitacin del Timer y creamos el lazo infinito
debajo de esta dos funciones insertadas.

A continuacin vamos a insertar la funcin "NegVal" en la subrutina de interrupcin del


Timer, para ello hacemos doble clic izquierdo sobre el elemento de evento
"TI1_OnInterrupt" (de icono color verde), ubicado en la ventana
"Componentes Blinking", inmediatamente se abre en el Editor el archivo "Events.c",
este me lleva directamente al espacio en el que debo insertar el cdigo que se ejecutar
al momento de la atencin de la interrupcin del Timer Ubicamos el cursor luego del
comentario "Write your code here" y hacemos espacio para insertar esta funcin.

5. Construccin del proyecto

Para construir nuestro proyecto desplegamos el menu "Project" > "Build All". Este
comando efecta la "construccin" de todos los archivos que componen el proyecto.

Se construyen as los archivos:

main.c en donde se escribe el cdigo principal de la misma.


Events.c me lleva directamente al espacio en el que debo insertar el cdigo que
se ejecutar al momento de la atencin de la interrupcin del Timer.

You might also like