Autor Tema: Cambio automatico de banco  (Leído 7660 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado andres48

  • PIC10
  • *
  • Mensajes: 21
Cambio automatico de banco
« en: 02 de Noviembre de 2011, 22:07:53 »
Estimados
recurro a ustedes porque agote mis conocimientos
estoy en pleno desarrollo de un sistema de control con un master y varios esclavos
el master lleva un 16f876A y... todo bien hasta que avanzando con la programacion, al generar el ASM niple me acomodo los bancos automaticamente.
el tema es que, a partir de alli ya no funciono el programa
Pude generar el Hex sin problemas ni errores pero este no corre una vez grabado, y antes de ese proceso si lo hacia.
alguno de ustedes a tenido este problema antes?
gracias por su atencion
PD subo el NPL por si quieren verlo

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: Cambio automatico de banco
« Respuesta #1 en: 03 de Noviembre de 2011, 10:49:22 »
¿Con que version estas trabajando?

Se que habia una version no recuerdo bien que no funcionaba el cambio de banco.
Esta tarde pruebo y te adjunt lo que me genera ami para que puedas ver si te funciona


F.
Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: Cambio automatico de banco
« Respuesta #2 en: 03 de Noviembre de 2011, 13:44:03 »
Te adjunto lo que he realizado para comprobar si te funciona.
Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: Cambio automatico de banco
« Respuesta #3 en: 03 de Noviembre de 2011, 14:00:00 »
He estado echando un vistazo al programa y tengo algunas dudas, ¿las puedes aclarar?

Tienes implementados unos dispositivos: Un DS1307 y 2 ee-prom, conectadas a un bus I2C pero cada uno de los dispositivos tienes creado una red I2C con los pines SCL y SCK colocados cada uno en unos pines del puerto A: A0-A1, A2-A3 y A4-A5 respectivamnete.
Ademas  las memorias las tienes ambas como Nº dispositivo=0 ¿no deberia ser uno el dispositivo 0 y otro el 1 por ejemplo?
No seria mas aconsejable utilizar un unico bus para los 3 dispositivos, cambiando la direccion de cada uno de ellos.

Por otra parte dentro del programa no veo por ningun lado que escribas ni leas de la ee-prom 2 ¿Estoy equivocado?

F.
Todos los días se aprende algo nuevo.

Desconectado andres48

  • PIC10
  • *
  • Mensajes: 21
Re: Cambio automatico de banco
« Respuesta #4 en: 04 de Noviembre de 2011, 12:40:50 »
Antes que nada, gracias por la atencion dispensada Fermin. Un gusto poder leerte nuevamente.
Te comento que el programa deberia tener las subrutinas de lectura y escritura en eeprom, solo que, habida cuenta del inconveniente que tenia, las fui eliminando. Despues envio el programa completo.
Respecto a la disposicion de los I2c, si bien es muy cierto lo que sugeris, a nivel pcb me resulto mas facil hacerlo de este modo, y dado que cada elemento posee su propio bus fisico, no me fue necesario identificarlos ya que sobre cada uno de ellos solo cuelga 1 I2c.
esto lo he podido comprobar y funciona sin problemas. Los problemas empezaron solo cuando, por extenesion del programa, niple forzo el reacomodo de la memoria. A partir de alli la cosa ya no funciono mas.
Envie un correo por este tema a Jorge y estoy esperando respuestas.
La version que estoy usando en la 5.6 plus con licencia y funciona de maravillas, salvo este tema que me tomo de sorpresa.
Este programa administra un master y varios esclavos y algo que observe con respecto a la comunicacion es que, si bien el maestro puede administrar el RS485 por codigo, los esclavos deben hacerlo a travez de USART. De otro modo, no encontre la manera de que se sincronicen y tuve muchos dolores de cabeza con esto.
Demas esta decir que si puedo ser util en algo a la comunidad, sean tan amables de pedirlo.
muchas gracias a todos
Andres

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: Cambio automatico de banco
« Respuesta #5 en: 04 de Noviembre de 2011, 14:57:39 »
¿Probaste lo que adjunté?

F.
Todos los días se aprende algo nuevo.

Desconectado andres48

  • PIC10
  • *
  • Mensajes: 21
Re: Cambio automatico de banco
« Respuesta #6 en: 04 de Noviembre de 2011, 15:57:55 »
Aun no.
Estoy en la oficina y no tengo aca los elementos.
Gracias
Andres

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: Cambio automatico de banco
« Respuesta #7 en: 04 de Noviembre de 2011, 16:41:01 »
Wait.......................................................... ;-)
Todos los días se aprende algo nuevo.

Desconectado andres48

  • PIC10
  • *
  • Mensajes: 21
Re: Cambio automatico de banco
« Respuesta #8 en: 04 de Noviembre de 2011, 20:56:52 »
Hola F
probe el hex pero seguimos con lo mismo
el sistema queda colgado. Ni siquiera presenta en pantalla.
sigo investigando que paso
un abrazo
andres

Desconectado andres48

  • PIC10
  • *
  • Mensajes: 21
Re: Cambio automatico de banco
« Respuesta #9 en: 04 de Noviembre de 2011, 22:25:37 »
Fermin
aca envio otros archivos donde veras que la version base funciona correctamente, solo que ocupa el 1005 del banco 0
despues de agregar algun detalle menor, me acomodo automaticamente los bancos y ya no funciono mas. (base2)
si pudieras verlos me seria de mucha ayuda
gracias
Andres

Desconectado juanfra

  • PIC12
  • **
  • Mensajes: 74
Re: Cambio automatico de banco
« Respuesta #10 en: 05 de Noviembre de 2011, 10:06:32 »
Hola Andrés.
En ciertas ocasiones , cuando NIPLE ha organizado los bancos de memoria tb. me ha ocurrido lo que  a ti.
He cambiado la subrutinas de banco y el error que estaba saltando " owerflow stack return call .....", esta subsanada.
En proteus funciona, me falta implementar la comunicación con los dispositivos 485 para que el programa avance.

Ya me tienes al día.

Desconectado juanfra

  • PIC12
  • **
  • Mensajes: 74
Re: Cambio automatico de banco
« Respuesta #11 en: 05 de Noviembre de 2011, 10:07:21 »
Me deje los archivos


juanfra

Desconectado lesr

  • PIC10
  • *
  • Mensajes: 49
Re: Cambio automatico de banco
« Respuesta #12 en: 05 de Noviembre de 2011, 12:21:49 »
Al parecer éste tema Niple lo arrastra desde hace tiempo!

Antes de que lean el siguiente texto quisiera que lo tomen mas como un aviso de prevencion antes que una queja, esto basado en mi experiencia claro!!!

Estuve trabajando en un soft que envia mensajes atraves de un cell y todo esto lo hice con el entorno de niple, todo venia muy bien tomando en cuenta algunas precauciones que detallo a continuacion
1 Nunca declaren tantas variables como para llenar solo el banco 0 ya que el niple tambien los declara alli y cuando dicho banco se llena y el niple toma MIS variables y las REORDENA entre el banco 0 y el 1 que hace esto? Hace que el programa se vuelva loco!!! y el proyecto se vaya a la basura!!!! Claro si es que no manejan asembler y los corrijen una vez generado el codigo. En mas de una ocacion reporte este error a los desarrolladores de niple, en particular al Sr Jorge Cano y este simplemente se limito a decirme "Estamos trabajando en ello", si ustedes se fijan hay un post que habri cuando me tope con este problema....Cual fue la solucion esta ves..... Empece a crear variables en los otros bancos y dejar al niple que cree sus variables unicamente en el banco 0, pero cada vez que uno crea una variable fuera del banco cero el niple dice"El niple le recomiendo llenar el banco", no se para que? si al final destruye tu programa!!

Una ves que tuve en cuenta todo esto me dije a mi mismo problema solucionado!!!!
En realidad no sabia lo que me esperaba!!!... Ya que cuando mi programa fue creciendo y llene  la PAGINA 0 o sea los primeros 2k de memoria el niple me pide que reorganice el programa o mas bien que el (programa) me reorganizara automaticamente, dandome la opcion de colocar MIS rutinas en la pagina 0 (si hubiere lugar) o en el banco 1 pero solo mis rutinas ya que las interrupciones y el programa principal son intocables.... Que ocurrio? Lo reorganice tal como me lo pidio, me genero perfectamente el archivo HEX, pero al colocar el micro grabado en el circuito hacia cualquier como menos lo que deberia, esto me obligo a simular el soft, y me dio lo mismo es decir mi programa estaba loco, es decir los saltos que hacian no eran los correcto iba a rutinas que yo no pedia......
La unica alternativa que tuve es la de minimizar el programa lo mas que pude llegando a ocupar el 98% de la primera pagina, hasta hoy no encontre un solucion a todo esto, es por eso les escribo advirtiendoles por un lado y si alguien ya paso por esto que sea tan amable de darme la solucion.
La unica salida a todo esto es poder uno mismo mover los codigos a la pagina que desea de tal forma que el niple no haga ninguna organizacion pero.... no lo puedo hacer ya que no puedo introducir la opcion ORG XXXX que es el que organiza las lineas de codigos en determinados lugares de memoria. Si alguien sabe como utilizar el ORG en niple que me avise por favor!!!!
Todo esta experiencia, rabia, frustracion, me llevo a hacer la siguiente pregunta????
Sera que realmente nos venden lo que dicen vendernos? Ya que para evitar cualquier mal momento inverti dinero en un soft legal para que funcionara de la mejor forma, y no tuviera que tener contratiempos en mis proyectos, pero pareciera ser que fue todo en vano!!!!
OJO no apoyo bajo ninguna circunstancia la pirateria, solo que hay veces que uno cuando esta apunto de terminar un proyecto y le ocurre todo esto,,,, quesiera tirar la llave y el soft a la basura....
Desde ya muy agradecido por los comentarios, aportes y sugerencia dadas!!!!!!!!!!!!!!!


Desconectado andres48

  • PIC10
  • *
  • Mensajes: 21
Re: Cambio automatico de banco
« Respuesta #13 en: 05 de Noviembre de 2011, 19:33:00 »
Antes que nada, gracias a todos por la colaboracion
les comento algo que me llamo la atencion
veran que en el caso del 16f876A y el 873A, cuando declaran registros, el banco 1 aparece en color blanco y el 2 y 3 en rojo en niple plus 5.6  rev0
esto lo chequee con otros pics y la cosa es siempre verde salvo en estos dos ..??
entonces, use el niple 5.2, donde el banco 1 / 2 / 3 estan en verde  y ... wala  funcion bien.
supongo que Jorge debera estar trabajando en esto.
Juanfra
voy a probar lo que enviaste
un abrazo a todos
Andres

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: Cambio automatico de banco
« Respuesta #14 en: 06 de Noviembre de 2011, 16:47:59 »
En ciertas ocasiones , cuando NIPLE ha organizado los bancos de memoria tb. me ha ocurrido lo que  a ti.
He cambiado la subrutinas de banco y el error que estaba saltando " owerflow stack return call .....", esta subsanada.
En proteus funciona, me falta implementar la comunicación con los dispositivos 485 para que el programa avance.

Hola Juanfra, ¿el acomodo lo haces directamente desde ASM?. Ahora no tengo el programapesente pero ¿no tiene Niple la opcion de REcolocar las subrutinas, una vez que las ha colocado la 1ª vez? Esto no lo he probado voy a investigar.

supongo que Jorge debera estar trabajando en esto.

Si no se le comunica, no se si lo hará. Tampoco sé si tu lo has hecho, pero me he permitido el decirselo a ver que nos dice.
Todos los días se aprende algo nuevo.


 

anything