Usando Macros

March 18, 2008 at 5:23 pm | Posted in HowTo, Tutorial | 10 Comments

El uso de subrutinas lo vimos por primera vez en el tutorial Encendiendo y apagando LED’s… ahora con retardo! Ahí se vio la manera en la que se llama y se regresa de las subrutinas. También se dijo que el empleo de subrutinas hacía el código más entendible, otra forma de hacer el código entendible es mediante el uso de Macros.

Las macros son de alguna forma similares a las subrutinas ya que son conjuntos de intrucciones que se ejecutan de manera secuencial mediante una llamada a una orden de ejecución, sin embargo tiene diferencias muy significativas. Mientras que una subrutina aparece una sola vez en el código, cada vez que se “invoca” una macro se inserta el código de esta en el programa. Otra diferencia es que a una macro se le pueden especificar parámetros de entrada y a una subrutina no.

Lea el artículo completo en el blog Circuitos electronicos.

Teclado Matricial 4×4

June 13, 2007 at 7:02 pm | Posted in Ensamblador, HowTo, Rutinas | 49 Comments

Un teclado matricial es un simple arreglo de botones conectados en filas y colúmnas, de modo que se pueden leer varios botones con el mínimo número de pines requeridos. Un teclado matricial 4×4 solamente ocupa 4 lineas de un puerto para las filas y otras 4 lineas para las colúmnas, de este modo se pueden leer 16 teclas utilizando solamente 8 líneas de un microcontrolador. Si asumimos que todas las columnas y filas inicialmente están en alto (1 lógico), la pulsación de un botón se puede detectar al poner cada fila a en bajo (0 lógico) y checar cada columna en busca de un cero, si ninguna columna está en bajo entonces el 0 de las filas se recorre hacia la siguiente y así secuencialmente.

Un modo simple de detectar la tecla presionada es incrementar una variable con la cuenta de las teclas revisadas, de este modo al detectaruna pulsación el valor de la cuenta será el valor de la tecla presionada. Si al final no se presionó ninguna tecla la variable se pone a cero y la cuenta vuelve a comenzar. El puerto B del microcontrolador 16f628 (así como en el 16f877) viene preparado especialmente para el control de un teclado matricial 4×4. Para tener siempre un valor de 1 lógico en las colúmnas del teclado (parte alta del puerto B del pic) es necesario conectar resistencias de pull-up, sin embargo el puerto B cuenta con resistencias de pull-up integradas, de ese modo es posible trabajar con un teclado matricial sin necesidad de ningún componente externo.

Lea el artículo completo en el blog Circuitos electronicos.

Leer botones e interruptores

April 13, 2007 at 10:25 pm | Posted in HowTo, Rutinas, Tutorial | 15 Comments

Ya hace casi un mes y medio desde la última entrada, había estado ocupado con la escuela y por esa razón dejé un poco de lado este proyecto, pero ahora para continuar un poco por donde íbamos vengo con una nueva entrada, ahora sobre leer botones e interruptores.

Los botones e interruptores son dispositivos que nos sirven para introducir datos a algun sistema eléctrico o electrónico. Leer botones (e interruptores) es una tarea muy sencilla, solamente hay que tener en cuenta que estos, al ser dispositivos mecanicos, no cierran (ni abren) instantaneamente sino que presentan un fenomeno conocido como rebote, que no es otra cosa mas que un ruido electrico que genera errores en al detectar que se presionó un botón y que hace que parezca que el botón se presiono muchas veces.

Teniendo en cuenta eso podemos programar algunas rutinas anti-rebotes con el pic. Dos maneras sencillas de lograrlo son: crear un ciclo para verificar el estado de un bit y no salir de este hasta que el estado sea estable; o verificar el estado de un bit, llamar a un retardo (de alrededor de 10ms, aunque este retardo depende del tipo de interruptor y no es un valor fijo) y despues volver a verificar el estado del bit, si el estado es el mismo entonces el boton se presiono.

Lea el artículo completo en el blog Circuitos electronicos.

Instalar MPLAB en Ubuntu 6.06

March 1, 2007 at 8:40 am | Posted in HowTo, MPLAB, Tutorial | 34 Comments

Este es un pequeño tutorial para todos aquellos que utilicen Linux y se vean en la necesidad de usar el ambiente de desarrollo MPLAB. Está basado en una excelente guía de William Spinelli (Installing MPLAB on Ubuntu 6.06) con algunas pequeñas correcciones. La instalacion de MPLAB se hara a traves de Wine y WineTools, se instalara la version 7.31 (aun no he probado si la version 7.50 o 7.51 se pueden instalar mediante este proceso) en la version 6.06 de Ubuntu.

Instalar Wine

Como la version de Wine que se encuentra en el repositorio (0.9.12) no soporta la instalacion de Internet Explorer 6 (IE6) usando WineTools, la instalacion se hace en dos pasos: primero se instala una version antigua de Wine (0.9.8) y despues se actualiza a la ultima version disponible.

Primero se debe instalar la version antigua de Wine
 $ wget http://umn.dl.sourceforge.net/sourceforge/wine/wine_0.9.8-winehq-1_i386.deb
 $ dpkg -i wine_0.9.8-winehq-1_i386.deb

Lea el artículo completo en el blog Circuitos electronicos.

Blog at WordPress.com.
Entries and comments feeds.