TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: TC17 en 02 de Mayo de 2005, 19:20:00

Título: NO TENGO IDEA!!!!!! Porque la memoria de programa esta divida en paginas????
Publicado por: TC17 en 02 de Mayo de 2005, 19:20:00
???
Título: RE: NO TENGO IDEA!!!!!! Porque la memoria de programa esta divida en paginas????
Publicado por: Jimmy_pop en 03 de Mayo de 2005, 02:26:00
pues para tener mas de 256 bytes de registros de memoria y poder seguir con una arquitectura de 8 bits por ejemplo xD

en las operaciones que precisan un dato que corresponde a una direccion como MOVWF les das una direccion de 8 bits... eso implica que como maximo vas a poder darle 256 direcciones diferentes, que no es mucho que digamos.. xD si hacen páginas y te dan 2 bits (como en el pic16f877 y todos esos) para seleccionar una página.. ya tienes 4*256 registros que ya está mejor..  y blabla..  es un truquillo para tener mas memoria
Título: RE: NO TENGO IDEA!!!!!! Porque la memoria de programa esta divida en paginas????
Publicado por: Falconhunter en 03 de Mayo de 2005, 16:11:00
Nadie lo podria haber explicado mejor
Título: RE: NO TENGO IDEA!!!!!! Porque la memoria de programa esta divida en paginas????
Publicado por: TC17 en 04 de Mayo de 2005, 06:30:00
Sonrisa gracias... me han sacado de una gran duda... imagino que un criterio similar se aplica a los bancos de memoria de datos?.... gracias por la ayuda
Título: RE: NO TENGO IDEA!!!!!! Porque la memoria de programa esta divida en paginas????
Publicado por: antoniof en 04 de Mayo de 2005, 18:04:00
Buenas.

Para la memoria de programa, ocurre lo mismo. El registro contador de programa "PC", puede direccionar hasta 8KBytes de memoria(14bits). El problema es que instrucciones como call o goto, sólo cargan los 11 primeros bits en el PC, lo que nos da un total de 2KB. Cuando queremos saltar a otra página de la memoria de programa, debemos precargar en el registro "PCLATH" los dos bits más significativos del PC, para que al ejecutar la instrucción goto o call, el pc se carge corectamente.

Otra cosa a tener en cuenta son los saltos en las tablas de datos cuando hacemos un "addwf PC,f". En este caso, como ha dicho nuestro amigo Jimmy, el registro "w" tan sólo contiene los 8 bits menos significativos que se cargan en el PC, por eso no podemos hacer nunca tablas de datos mayores de 256 datos. A la hora de realizar tablas, debemos asegurarnos de cargar en el PCLATH el valor adecuado, que esta vez, serán los 5 bits más significativos.
Título: RE: NO TENGO IDEA!!!!!! Porque la memoria de programa esta divida en paginas????
Publicado por: Jimmy_pop en 07 de Mayo de 2005, 04:48:00
Sí, me había olvidado eso,

Y en su día tambien me hizo sudar esto, pq muchas veces olvidas que puede suceder.