|
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 |
|
 |
| Publicado: 13 Nov 2005, 1:30 pm |
|
|
 |
 |
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
|
|
|
 | #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: 647 |
|
 |
| Publicado: 15 Nov 2005, 10:47 am |
|
|
 |
 |
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?
|
|
|
|
Norberto
|
| Registrado: 31 Oct 2006 |
| Mensajes: 45 |
|
 |
| Publicado: 01 Nov 2006, 8:39 pm |
|
|
 |
 |
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!!
|
|
|
|
gerberprieto
| Ubicación: Colombia |
| Registrado: 26 Abr 2008 |
| Mensajes: 2 |
|
 |
| Publicado: 01 Jun 2008, 10:48 am |
|
|
 |
 |
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....
|
|
|
|
MaMu
Colaborador
| Ubicación: Argentina - Buenos Aires - Capital Federal |
| Registrado: 18 Abr 2005 |
| Mensajes: 872 |
|
 |
| Publicado: 01 Jun 2008, 11:23 am |
|
|
 |
 |
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
|
|
|
|
Ardogan
| Ubicación: Argentina |
| Registrado: 19 Ago 2006 |
| Mensajes: 471 |
|
 |
| Publicado: 01 Jun 2008, 11:27 am |
|
|
 |
 |
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
|
|
|
|
pepechip
Colaborador
| Ubicación: Granada- España |
| Registrado: 09 Feb 2007 |
| Mensajes: 1622 |
|
 |
| Publicado: 01 Jun 2008, 11:41 am |
|
|
 |
 |
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
 , 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.
|
|
|
 | Foros de Electronica |  |
|
 |