elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
27 Mayo 2012, 09:16  


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)

+  Foro de elhacker.net
|-+  Informática
| |-+  Electrónica (Moderador: skapunky)
| | |-+  Resolver problemas con tablas 6 bits.
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 2 [3] Ir Abajo Respuesta Imprimir
Autor Tema: Resolver problemas con tablas 6 bits.  (Leído 5,134 veces)
Meta


Desconectado Desconectado

Mensajes: 2.304



Ver Perfil WWW
Re: Resolver problemas con tablas 6 bits.
« Respuesta #30 en: 11 Septiembre 2010, 06:06 »

Hola:

Pues no, no funciona, se comporta todo como desde el principio. Por lógica debería funcionar.

Código
Principal
movf PORTC,W ; Lee los sensores.
andlw b'00111111' ; Máscara para quedarse con el valor de los sensores.
addwf PCL,F ; Salta a la configuración adecuada.
Configuracion0
call LCD_Linea2EnBlanco
movlw PAGINA_00 ; Lee a partir de la dirección 00 de esta página
call M24LC256_Mensaje_a_LCD ; de la memoria.
goto ActivaSalida
Configuracion1
call LCD_Linea4EnBlanco
movlw PAGINA_01 ; Lee a partir de la dirección 01 de esta página
call M24LC256_Mensaje_a_LCD ; de la memoria.
goto ActivaSalida
 

En l alibrería LCD_4BIT.INC he colocado las instrucciones que me dijiste.
Código
LCD_Linea1EnBlanco
call LCD_Linea1   ; Sitúa el cursor al principio de la línea 1.
call LCD_LineaEnBlanco  ; Borra la línea.
call LCD_Linea1   ; Regresa el cursor al principio de la línea.
return
 
LCD_Linea2EnBlanco    ; Similar que la anterior.
call LCD_Linea2
call LCD_LineaEnBlanco
call LCD_Linea2
return
 
LCD_Linea3EnBlanco   ; Similar que la anterior.
call LCD_Linea3
call LCD_LineaEnBlanco
call LCD_Linea3
return
 
LCD_Linea4EnBlanco   ; Similar que la anterior.
call LCD_Linea4
call LCD_LineaEnBlanco
call LCD_Linea4
return
 

Las cosas que debería funcionar por lógica a veces sorprende.


En línea

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/
Tokes

Desconectado Desconectado

Mensajes: 137


Ver Perfil
Re: Resolver problemas con tablas 6 bits.
« Respuesta #31 en: 11 Septiembre 2010, 18:00 »

Mi buen Meta:

Te faltaron algunas intrucciones:

Código
    movf   PORTC,W
   andlw  b'00111111'
   addwf  PCL,F
   goto    Configuracion0   ; Te faltaron estas instrucciones.
   goto    Configuracion1
   goto    Configuracion2
           .
           .
           .

Pero ya está corregido. Te lo envié por si las dudas.

             Saludos.


En línea
Meta


Desconectado Desconectado

Mensajes: 2.304



Ver Perfil WWW
Re: Resolver problemas con tablas 6 bits.
« Respuesta #32 en: 12 Septiembre 2010, 03:54 »

Que despiste.

Muchas gracias, voy hacer más pruebas, parece que ahora si funciona.

Saludo.

Edito:

Uffffffffffff, algo me impresiona y e decepciona el asm. Espero no recurrir al C18 o CCS por culpa de esta tontería.

He colocado los mensajes en las configuraciones de la EEPROM. Precisamente me sale este aviso:

Código
	IF (FinTabla > 0xFF)
ERROR "¡CUIDADO!: La tabla ha superado el tamaño de la página de los"
MESSG "primeros 256 bytes de memoria ROM. NO funcionará correctamente."
ENDIF
 

He dejado de usar las tablas para no tener que cambiar de niveles, por eso uso la EEPROM y descubro que con o sin EEPROM externa me pasa lo mismo.

¿Al final debo usar el truco para superar los 256 bits por obligación aunque use la EEPROM externa?
« Última modificación: 12 Septiembre 2010, 07:56 por Meta » En línea

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/
Tokes

Desconectado Desconectado

Mensajes: 137


Ver Perfil
Re: Resolver problemas con tablas 6 bits.
« Respuesta #33 en: 13 Septiembre 2010, 04:45 »

Hola, Meta:

Me parece que los mensajes todavía los tienes en la programación ocupando espacio. Debes quitarlos, ya que no los ocupas puesto que ahora están en la 24LC256.

Si ya los quitaste, entonces la directiva IF FinTabla > 0xFF... debes ponerla después de los goto's, más o menos así:

Código
   movf   PORTC,W
  andlw  b'00111111'
  addwf  PCL,F
  goto    Configuracion0
  goto    Configuracion1
  goto    Configuracion2
          .
          .
          .
  goto    ConfiguracionX
FinTabla
 
  IF (FinTabla > 0xFF)
   ERROR "CUIDADO!: La tabla ha superado el tamaño de la página de los"
  MESSG "primeros 256 bytes de memoria ROM. NO funcionará correctamente."
  ENDIF
 
Configuracion0
   ; Código de la configuracion 0.
 
Configuracion1
  ; Código de la configuracion 1.
 
        .
        .
        .
 

Con respecto a lo de usar lenguaje C, pues te vendría mejor, ya que el compilador gestiona la memoria tanto de datos como de programa y no hay que seleccionar bancos ni páginas de programa como en ensamblador.

Si aún haciendo lo que te dije sigue marcando error, entonces sí debes usar el "truquito" para poner la tabla.

             Saludos.
« Última modificación: 13 Septiembre 2010, 04:48 por Tokes » En línea
Páginas: 1 2 [3] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayundeme a resolver esto problemas :(
Programación C/C++
alkimista1988 1 227 Último mensaje 14 Julio 2011, 22:53
por El_Java
problemas con ide no se como resolver poo
Programación C/C++
gorge2004 1 201 Último mensaje 8 Marzo 2012, 18:31
por darkvidhack
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines