Foros de Electrónica

Comunidad de discusión sobre Automatización, Electrónica industrial, Microcontroladores y electrónica digital, Robótica, Domótica, Telemática, Tecnologías móviles, y muchos temas más.




Assembler, me paso de las 595 lineas y el pic no funciona


       



#1  Assembler, me paso de las 595 lineas y el pic no funciona
Rene
Ubicación: Santiago-Chile
Registrado: 12 Nov 2005
Mensajes: 16
citar
Hola amigos, soy nuevo en el foro, espero que alguien pueda ayudarme con este misterio que me tiene un poco desanimado. Les cuento:

Estoy usando el pic 16F628A para controlar un lcd 16x1 por medio de 8 botones, hice el programa primero para un boton y funciona perfecto, repetí las rutinas y usando un segundo boton funciona de maravillas, pero al hacerlo para un tercer boton, me muestra 3 letras del mensaje y se reinicia el pic, despues de mucho pelear con el pic y el programa, me di cuenta que al ensamblarlo y pasarme de las 595 lineas me da problemas, quite algunas lineas de mas y logre mostrar 5 letras, no entiendo por que tengo ese limite de lineas para ensamblar.

Si alguien sabe de porque pasa esto le agradeceria mucho la ayuda.

adjunto el programa



Este mensaje contiene archivos adjuntos, para verlos debes estar registrado.

#2  Re: Assembler, me paso de las 595 lineas y el pic no funcion
maunix
Colaborador
Ubicación: Cordoba, Argentina
Registrado: 22 Oct 2005
Mensajes: 649
citar
Rene escribió: Hola amigos, soy nuevo en el foro, espero que alguien pueda ayudarme con este misterio que me tiene un poco desanimado. Les cuento:

Estoy usando el pic 16F628A para controlar un lcd 16x1 por medio de 8 botones, hice el programa primero para un boton y funciona perfecto, repetí las rutinas y usando un segundo boton funciona de maravillas, pero al hacerlo para un tercer boton, me muestra 3 letras del mensaje y se reinicia el pic, despues de mucho pelear con el pic y el programa, me di cuenta que al ensamblarlo y pasarme de las 595 lineas me da problemas, quite algunas lineas de mas y logre mostrar 5 letras, no entiendo por que tengo ese limite de lineas para ensamblar.

Si alguien sabe de porque pasa esto le agradeceria mucho la ayuda.

adjunto el programa


Asumiendo que tu hardware esté bien y antes de tenerme que leer todo tu código te paso algún par de sugerencias.

1) Si se te reinicia el PIC, es probable que estés haciendo un 'return' cuando en realidad has llamado a la subrutina con un 'goto'.

Si el stack de calls se vacía , el Program Counter tomará el address 0x0000 con lo cual tu verás como que el pic se reinicia. En realidad no es que se reinicie sino que se va al address 0.


2) Como sabes eso de las 595 líneas? estas seguro? No tiene lógica.
Que compilador usas? version ? Entorno de programación? Lenguaje?

#3  salto
Norberto
Registrado: 31 Oct 2006
Mensajes: 45
citar
podes tener problemas con saltos mayores a 256, algun goto a una etiqueta muy lejana, pero el compilador supongo que usas el MPLAB te lo tendria que informar!!

#4  
gerberprieto
Ubicación: Colombia
Registrado: 26 Abr 2008
Mensajes: 2
citar
Bueno para esto pude ser varias cosas la mas probable es que tengas una vercion de mplab la cual no te permite programal el pic totalmente, la ota es que una tabla te alla quedado entre dos paginas de memoria ram asi que para esto usa un org para que te ubique en otra pagina ,
claro esta toca mirar cual es l error que te sale....

#5  
MaMu
Moderador
Ubicación: Argentina - Buenos Aires - Capital Federal
Registrado: 18 Abr 2005
Mensajes: 874
citar
Había una vez, un cuento que hablaba de paginación de memoria, y relataba las historias de Juan Registro y las peripecias de esté cuando sin darse cuenta, se pasaba de banco, con sus bloques de código.:D

Saludos

#6  
Ardogan
Ubicación: Argentina
Registrado: 19 Ago 2006
Mensajes: 423
citar
pagesel (macro) también es muy útil en estos casos si usás el mpasm de microchip. Fijate en la ayuda que ahí esta más claro que cualquier cosa que yo pueda decir.
Saludos

#7  
pepechip
Colaborador
Ubicación: Granada- España
Registrado: 09 Feb 2007
Mensajes: 1525
citar
MaMu escribió: Había una vez, un cuento que hablaba de paginación de memoria, y relataba las historias de Juan Registro y las peripecias de esté cuando sin darse cuenta, se pasaba de banco, con sus bloques de código.:D

Saludos

Laughing , efectivamente por ahy van los tiros.
a colocado unas tablas por encima de la posicion 256.

Te sugiero que las tablas de datos las pongas al principio de tu programa, de forma que nunca llegen a la posicion 255.

Cuando las tablas supera esa posicion de memoria hay otra forma un poco mas compleja de utilizarlas.

 Responder





 Otros temas de interés 
No hay mensajes nuevos Cuenta descendente horas, minutos y segundos.
No hay mensajes nuevos Cuenta revoluciones
No hay mensajes nuevos temporizador de cuenta atras
No hay mensajes nuevos cuenta revoluciones de leds
No hay mensajes nuevos Diseño de cuenta vueltas

Foros de Electronica
|| Cuestiones Elementales de Electrónica || Fuentes de alimentacion || Circuitos de radio || Diseño de circuitos en general ||
|| Sistemas de Audio: Preamplificadores, Ecualizadores || Amplificadores || Reparación || Discusión ||
|| Microcontroladores y sistemas embebidos || Circuitos logicos combinacionales y secuenciales || Interfaces y Programacion || Dudas en general || Sistemas de Video || PC Hardware || Telematica y comunicaciones || Tecnologias moviles || Software Electronico || Robotica, Domotica y Mecatronica || Autotrónica || Automatizacion, Electronica industrial y de Potencia || Documentacion, circuitos y esquemas || Donde Las Ideas Convergen... || Tutoriales y Manuales || Proyectos Prácticos ||