uControl
Junio 19, 2013, 10:46:01 *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: Inconveniente con matriz de leds en JalV2  (Leído 1770 veces)
0 Usuarios y 1 Visitante están viendo este tema.
RUSO 15
PIC10F
*
Desconectado Desconectado

Sexo: Masculino
Mensajes: 84



« : Marzo 13, 2012, 03:48:24 »

Hola a todos, tengo un inconveniente con una matrix de 8x64 (aclaro que la matriz muestra un led encendido teniendo un "1" en la fila, y un "0" en la columna), hago los siguiente:

configuro el pic para funcionar con un cristal externo a 20 MHz, activo todos los pines como I/O digitales, pongo el porta y el portb como salidas, y luego declaro ocho variables (del tipo byte*8 ) para cada fila,

Código:
var byte*8 fila0= 0xFFFFFFFFFFFFFFF --con todos los bits con valor uno
var bit f00 at fila0:0  -- f00 es el bit menos significativo de fila0, lo uso para ir
--leyendo e ingresando los valores a la matriz
--declaro otra variable "auxiliar" para no perder la información de fila0 al
--desplazarla para su lectura
var byte*8 auxiliar0= 0xFFFFFFFFFFFFFFF --con todos los bits con valor uno
var bit f00 at fila0:0
f00=1

y luego dirijo el programa a la parte de escritura de la matriz. Mi inconveniente es que, la matriz comienza mostrando todos los leds encendidos, y, como explique anteriormente, tendría que mostrar todos los leds apagados.
El compilador me da esta advertencia:
constant does not fit in UNIVERSAL
(en la imagen adjunta hay un pantallazo)
respecto de cada variable byte*8 que declaro. No sé qué es lo que estoy haciendo mal, es decir he utilizado el mismo programa para una matriz de 8x32, y una de 8x8 y me funcionan bien (cuando comienza a correr todos los leds están apagados hasta que va entrando el texto), solo he cambiando para la de 8x8 variables del tipo byte (8 bits), y para la de 8x32 variables del dword (32 bits).

Bueno, después de que comienza a correr el programa en la matriz (y se muestran todos los leds encendidos al mismo tiempo  cabezaso a la pared), al cabo de unos segundos aparece un espacio en blanco (leds apagados), y el texto cargado se desplaza sin ningún inconveniente.
Espero que alguien me pueda dar una mano con esto.
Desde ya gracias.

P.D.=no pongo ningún esquemático porque como dije antes, después de unos segundos, la matriz funciona como espero. Si alguien cree que sea el hard, lo subo para que lo vean.

Saludos.



* Pantallazo.JPG (74.72 KB - descargado 199 veces.)
« Última modificación: Marzo 13, 2012, 07:18:36 por Leon Pic » En línea
Leon Pic
Moderador
dsPIC
*****
Desconectado Desconectado

Sexo: Masculino
Mensajes: 5121


Cumulonimbus


WWW
« Respuesta #1 : Marzo 13, 2012, 07:23:49 »

Realmente, no tengo ni idea porqué te dice eso, pero te hago una pregunta que puede ser ese el problema:

Las líneas que te dan warning, son donde declarás var byte*8 fila0 = 0xfffffffffffffff
Ahora bien, donde declaras estas variables, ¿están fuera de todo programa, es decir, están fuera de algún loop (incluyendo forever loop); while, if; etc. ?
En línea

Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.
lucho512
Amigo de uControl
PIC16F
******
Desconectado Desconectado

Sexo: Masculino
Mensajes: 796



WWW
« Respuesta #2 : Marzo 13, 2012, 08:26:16 »

Hola Ruso me parece que es por que te estas saliendo de rango con 0xFFFFFFFFFFFFFFF pone 0xFFFFFFFF

Lo acabo de probar y compila bien sin errores ni advertancias.-

Saludos
Luciano
En línea
RUSO 15
PIC10F
*
Desconectado Desconectado

Sexo: Masculino
Mensajes: 84



« Respuesta #3 : Marzo 13, 2012, 08:50:26 »

Realmente, no tengo ni idea porqué te dice eso, pero te hago una pregunta que puede ser ese el problema:

Las líneas que te dan warning, son donde declarás var byte*8 fila0 = 0xfffffffffffffff
Ahora bien, donde declaras estas variables, ¿están fuera de todo programa, es decir, están fuera de algún loop (incluyendo forever loop); while, if; etc. ?

Hola, las líneas que me dan warning son todas las de ese tipo ( var byte*8 ), y están todas declaradas después de las declaraciones pragmas, antes de que comiencen los procedure, while, for, y demás partes del programa.

Hola Ruso me parece que es por que te estas saliendo de rango con 0xFFFFFFFFFFFFFFF pone 0xFFFFFFFF

Lo acabo de probar y compila bien sin errores ni advertancias.-

Saludos
Luciano

Acabo de probar modificando 0xFFFFFFFFFFFFFFFF por 0xFFFFFFFF, y aparentemente el problema sigue (leds encendidos cuando comienza a correr), pero en este caso los "warnings", no aparecen. También he probado colocar el número en binario:

Código:

var byte*8 fila0= 0b_11111111_11111111_11111111_11111111_11111111_11111111_11111111_11111111


y tengo el mismo resultado.

Gracias por responder, voy a leer en la guía de usuario otra vez, en una de esas pasé por alto algo. Si tienen más sugerencias, los escucho.

P.D.= Estoy probando el programa en una matriz de 7*32 (porque no he armado todavía la matriz de 8*64), no creo que sea ese el error, porque por ejemplo en la matriz de 8*8 puedo correr sin problemas el programa de 8*32.

Saludos.

EDITO:
Este es un video:
http://www.youtube.com/watch?v=--eJm2PDIeQ&feature=youtu.be


<a href="http://www.youtube.com/v/--eJm2PDIeQ&amp;feature=youtu.be" target="_blank">http://www.youtube.com/v/--eJm2PDIeQ&amp;feature=youtu.be</a>
Editado para incrustar el vídeo.
HJ
« Última modificación: Marzo 14, 2012, 12:21:18 por HJ » En línea
Páginas: [1]   Ir Arriba
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.18 | SMF © 2011, Simple Machines
SMFAds for Free Forums
XHTML 1.0 válido! CSS válido!
Página creada en 0.091 segundos con 29 consultas. (Pretty URLs adds 0.008s, 3q)