Está en la página 1de 3

UNIVERSIDAD DE LA SALLE

FACULTAD DE INGENIERIA

INFORME DIGITALES:
RECONOCIMIENTO DE ENTRADAS Y SALIDAS PARA LA DEMOQE, UTILIZANDO PROGRAMACION C

Suarez, Wilson., Romero, Julián ª

Resumen— una para cada uno de los accionadores; esto debe ser visible
En la practica de laboratorio tenemos que conectar un en la tarjeta de programación empleada por lo cual se debe
sensor ultrasónico el cual debe detectar la distancia de un considerar que éste decremento y aumento de parpadeo
objeto cualquiera, a medida que el objeto se acerca debe estará definido en la programación de la tarjeta. Teniendo
sonar una alerta que indique de un modo que tan lejos está conocimiento en compuertas lógicas que es necesario para
el objeto, se debe configurar el buzzer para esta alarma, y entender bloques y lógica secuencial podemos simplificar
se debe configurar los canales correspondientes , para el datos y funciones empleadas en el programa
transmisor con señal cuadrada, y para la recepción de la
señal se debe tener en cuenta una señal cuadrada
II. MARCO TEÓRICO
Palabras Clave— tarjeta desarrollo, LEDs, Frecuencia de
parpadeo, botón fe accion, Codewarrior, lenguaje c,  CODEWARRIOR:
demoqe, CDT CodeWarrior es una herramienta basada en un entorno IDE
(Integrated Development Environment). Desarrollado por
Abstract— Metrowerks, CodeWarrior integra edición de archivos,
The developed practice aims, know the logic of compilación optimizada, simulación de código, depuración
programming microcontrollers, in this case the y programación de diferentes dispositivos tales como el
DEMOQE128 as development card, should be familiar MPU, MCU, DSP, entre otros.
concepts and tools chain, debug, generate lighting Este programa trae la versatilidad de programar en
sequences, masking, finite cycles, infinite loops, among lenguaje ensamblador, C, C++, e incluso permite
others, the existing program directly from the C language combinaciones de código en los tres tipos mencionados.
compiler, CodeWarrior. Generates the development of line Se debe poseer una licencia para poder ser instalado y para
of code for which we can observe the sequence of LED in esto se debe comprar el software directamente. Sin
which sewn to create a flashing at different frequencies, embargo, la edición especial está disponible en la página
frequency control depends on the actuator or button that is web de Freescale, que es gratuita y aun cuando es una
operated, the resources that are used directly at the edición con limitaciones en el tamaño del código y
development card, us as well acquainted with the características avanzadas, es suficiente para la mayoría de
configuration of ports of entry (action buttons) and output las aplicaciones.
(LEds that run the sequence).
Keywords: card development, LEDs, flashing frequency,
action button, Codewarrior, c language, Demoqe.

I. INTRODUCCIÓN
En el documento se presenta e implementa en CodeWarrior
la línea de código en la que es posible el encendido LED y
la creación de arreglo de datos para que enciendan y
parpadeen con una determinada frecuencia, éstas estarán
definida directamente desde los pulsadores de la tarjeta, las
frecuencias implementadas son: 1 Hz, 5 Hz, 10 Hz y 20 Hz,
naturaleza paralela de alto rendimiento de los circuitos
digitales, los lenguajes de descripción de hardware ofrecen
semántica muy diferente a lo que están acostumbrados a
usar los ingenieros.

III. DESARROLLO DE LA PRÁCTICA

En esta ocasión se busca hacer un programa que haga


una lógica de parpadeo con los LEDs presentes en la tarjeta
de desarrollo DEMOQE, el objetivo es que cada vez que se
presione el los pulsadores que están en PTD2, PTA2, PTD3 y
PTA3, los LEDs enciendan y empiecen a parpadear, cada
pulsador corresponde a una frecuencia diferente las cuales
son: 1 Hz, 5 Hz, 10 Hz y 20 Hz, con estos valores
Entorno de trabajo para CODEWARRIOR garantizamos diferenciar a simple vista que pulsador se
acciono.

 TARJETA DE DESARROLLO - DEMOQE128 Para poder manejar en su totalidad el puerto se


manipula el registro PTxDD donde x en el el nombre del
Es un sistema de desarrollo de bajo costo diseñado para la puerto que queremos con configurar, como la lógica de la
demostración, evaluación y depuración de DEMOQE es inversa tener un 1 en el registro decimos que
Microcontroladores Freescale. Los circuitos integrados los pones serán de entrada y al tener un 0 indicamos que el
Multilink de P&E en los DEMOQE128 le permiten a su puerto será de salida; así PTADD y PTDDD son igualados a 0
procesador ser depurado y programado vía USB desde la ya que en estos están los pulsadores los cueles son de
PC. Además, puede ser alimentada con corriente mediante entrada para poder hacer que se muevan en los LEDs en
el cable USB. Además, la tarjeta contiene un analizador
PTCDD y PTEDD, serán configurados como puertos de salida
lógico y un puerto serial virtual mediante USB para ayudar
igualándolos a uno ya que estos están los LEDs donde se
a un desarrollo rápido.
visualizara el resultado de la suma en forma binaria.

El código creado para desarrollar la práctica fue el


siguiente:

Comenzando se llaman las librerías necesarias para


compilar correctamente el programa:

#define Config_P1() PTADD_PTADD2=0;


PTAPE_PTAPE2=1 /*Configurar los
leds como salida y habilitar resistencia
de pullup*/
 Programación C para microcontroladores #define Config_P2() PTADD_PTADD3=0;
PTAPE_PTAPE3=1
#define Config_P3() PTDDD_PTDDD2=0;
Los diseñadores tradicionalmente han utilizado lenguajes
PTDPE_PTDPE2=1
de programación como C para desarrollar sistemas
#define Config_P4() PTDDD_PTDDD3=0;
embebidos basados en arquitectura de microprocesadores PTDPE_PTDPE3=1
o microcontroladores. La popularidad de C ha dado lugar a
un gran ecosistema de opciones tecnológicas de Se configuran registro de dirección para cada pulsador y se
herramientas como bibliotecas, compiladores y sistemas enciende su resistencia de pull-up, con el fin de proteger la
operativos. Los arreglos de compuertas programables tarjeta de valores de voltaje no aptos.
(FPGAs) son una tecnología novedosa en el espacio
embebido que proporciona la capacidad de crear lógica #define Config_Output() PTCDD=PTCDD |
digital reconfigurable utilizando lenguajes de descripción de 0b00111111; PTEDD=PTEDD | 0b11000000;
hardware. Para representar el hardware y aprovechar la
#define Config_Led_On() PTCD=~(PTCD & } while (!Input_1()&&!
0b00111111); PTED=~(PTED & 0b11000000); Input_2()&&!Input_3());
#define Config_Led_Off() PTCD=~(PTCD &
0b11000000); PTED=~(PTED & 0b00111111); while(Input_0()) {
}
Configuramos funciones para los leds, los cuales permitirán }
quedar encendidos llamando a la instrucción y apagándolos }
de igual manera. Por último, esta será la iteración de ciclos para encender
cada uno a su respectiva frecuencia. Además de verificar el
#define Input_0() !PTDD_PTDD3 rebote que puede llegar a generar el programa, se verifica
#define Input_1() !PTDD_PTDD2 que el usuario suelte el botón sin generar ningún conflicto
#define Input_2() !PTAD_PTAD3 en el desarrollo de este.
#define Input_3() !PTAD_PTAD2
IV. CONCLUSIONES
void Mcu_Init(void); 1. Hacer que se quede el programa dentro de un ciclo
void Mcu_Init(void) { mientras no se pulse otro botón fue uno de los
Disable_COP(); mayores retos en la resolución de este laboratorio,
Config_Input_0(); se solucionó con varios ciclos anidados y evaluando
Config_Input_1(); en todo momento el voltaje de cada botón.
Config_Input_2();
Config_Input_3(); 2. La utilización de enmascaramientos y la correcta
Config_Output(); utilización ayuda a que manejar correctamente los
Config_Led_On(); puertos y las salidas que se encuentran separadas y
Config_Led_Off(); pero que tienen que ver los puertos usados, así se
} puede manejar se forma fácil y programar
controladamente, como ejemplo en este programa
Cambiamos la lógica de cada pulsador, ya que por defecto la posiciones de los LED y la secuencia en ellos.
al momento de configurar el registro viene con lógica 3. El reconocimiento de los puertos y de los
negativa. Además, llamamos a todas las funciones creadas periféricos conectados en la tarjeta son
para que sea más fácil al momento de inicializar la tarjeta. indispensables para poden hacer buen uso de ellos,
las herramientas que la tarjeta nos presta han
void Delay(char time); demostrado hasta el momento ser ideales para
void Delay(char time) { //Ciclo que para la programación, el manejo y la utilización de
demora un segundo un microcontrolador.
int temp = 0;
int i = 0; 4. Con esto nos damos cuenta poco a poco el alcance
int j = 0; que puede llegar a tener estos sistemas, pues con
for (i = 0; i < 500; i++) { los pocos recursos que hemos podido
for(j=0;j<time;j++) { implementar, ya podemos pensar en otras áreas
temp=temp+1; para desarrollar controladores y sistemas
} automáticos.
}
}
Esta función nos permitirá configurar la frecuencia V. REFERENCIAS
requerida al momento de presionar cada pulsador.

for (;;) {  Universidad de Oviedo.2010, disponible en:


http://www.todopic.com.ar/foros/index.php?
if(Input_0()) { topic=24982.0
Delay(t);  MIkroElektronika. 2015, Fernandez, Juan.
Disponible en:
if(Input_0()) { https://learn.mikroe.com/ebooks/microcontroladore
spicc/chapter/puertos-de-entradasalida/
do {

Config_Led_On();
Delay(100);

También podría gustarte