TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: popic en 06 de Agosto de 2006, 01:35:23
-
Hola a todos estoy programando en un pic 16f877 y el cual me presenta un error porque se me han acabado las lineas y nose que hacer para seguir adelante, ni como declarar los nuevos registros, ni como llamarlos. Tengo entendido que el pic tiene 4 bancos pero nose como cambiar de pagina o de banco para seguir con el programa.
Ademas necesito una subrutina que convierta de decimal a binario
les agradesco a todos por su ayuda.
-
Hola a todos estoy programando en un pic 16f877 y el cual me presenta un error porque se me han acabado las lineas y nose que hacer para seguir adelante, ni como declarar los nuevos registros, ni como llamarlos. Tengo entendido que el pic tiene 4 bancos pero nose como cambiar de pagina o de banco para seguir con el programa.
Ademas necesito una subrutina que convierta de decimal a binario
les agradesco a todos por su ayuda.
¿Puedes poner los errores que te tirá el ensamblador?
¿A qué llamas que se te han acabado las líneas?
-
jeje...Maunix supongo que le dirá a que ha usado los primeros 2K del PIC.
Saludos.
-
jeje...Maunix supongo que le dirá a que ha usado los primeros 2K del PIC.
Saludos.
Si , es muy probable pero como algunos llaman a otras cosas por otro nombre.... le hice una pregunta de tal vez obvia respuesta por si en realidad quiso decir otra cosa.
De todas formas, lo más importante es la otra pregunta, que nos comente que le tiró el ensamblador. :)
-
lo q
-
aver explico mejor el problema, resulta que mi programa es muy largo y ya me ocupe los primeros 2k del pic es decir la primera pagina, yo se que ya tengo que tener cuidado al hacer los llamados de subrutinas manipulando el pcl o bien sea utilizando las directiva "pagesel" del mplab, pero lo que yo quiero saber es si por ejemplo cuando el pic se encuentre en una subrutina que esta en otra pagina y esta tiene que modificar registros de proposito general no hay ningun problema con que estos registros esten en el banco 0.
mejor dicho si la subrutina esta en la pagina 1, tengo que usar registros de proposito general del banco 1, o las paginas son independientes de los bancos, o tambien tengo que tener cuidado a la hora de manipular los registros de proposito general.
gracias
-
aver explico mejor el problema, resulta que mi programa es muy largo y ya me ocupe los primeros 2k del pic es decir la primera pagina, yo se que ya tengo que tener cuidado al hacer los llamados de subrutinas manipulando el pcl o bien sea utilizando las directiva "pagesel" del mplab, pero lo que yo quiero saber es si por ejemplo cuando el pic se encuentre en una subrutina que esta en otra pagina y esta tiene que modificar registros de proposito general no hay ningun problema con que estos registros esten en el banco 0.
mejor dicho si la subrutina esta en la pagina 1, tengo que usar registros de proposito general del banco 1, o las paginas son independientes de los bancos, o tambien tengo que tener cuidado a la hora de manipular los registros de proposito general.
gracias
Con respecto a manipular registros, debes manejar el PCLATH no el PCL. Cuidado con eso!. pagesel es un macro que actúa sobre PCLATH. El PCL se te acomodará bien cuando hagas un call o un goto.
Con respecto a la otra pregunta, creo que estás confundiendo BANCOS de MEMORIA de PROGRAMA con BANCOS DE MEMORIA RAM.
El pic , si has leído su architectura, tiene separadas las memoria de programa de la ram. Este tipo de arquitectura se llama Harvard.
Por eso tu puedes estar apuntanto al Banco de Memoria RAM #0, a la vez que estar apuntando al Banco de Memoria de Programa #2.
También puedes estar apuntando o ubicado en el Banco de Memoria de Programa #3 y estar accesando a los registros de Memoria Ram #0
Espero eso te haya aclarado el panorama.