Autor Tema: cambio de página con el 16f877 en c  (Leído 2042 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado SJD2

  • PIC10
  • *
  • Mensajes: 27
cambio de página con el 16f877 en c
« en: 14 de Febrero de 2006, 01:41:00 »
Hola, necesito saber y comprender el funcionamiento para cambiar de pagina en C, mi intencion es saltar a la pagina 1 con una interupcion y que regrese a la pagina cero, se como hacerlo en asembler, pero no consigo hacerlo para C.
Agradezco cualquier sugerencia, muchas gracias por anticipado.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: cambio de página con el 16f877 en c
« Respuesta #1 en: 15 de Febrero de 2006, 00:47:00 »
En C sencillamente tienes que olvidarte de las páginas; ya se encargará el compilador de la gestión interna. Tú dile que interrumpa y él se buscará la vida para interrumpir.

Desconectado SJD2

  • PIC10
  • *
  • Mensajes: 27
RE: cambio de página con el 16f877 en c
« Respuesta #2 en: 15 de Febrero de 2006, 05:32:00 »
si, pero en el Pdf del CCS pone la instrucción #org (dirección); por ejemplo para ir a la pagina uno, eso para que sirve. y si yo kiero porque si cambiar de página, no puedo?
me han mandado esto hace 3 semanas y me estoy rompiedo la cabeza. al final no se hace aquí?..

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: cambio de página con el 16f877 en c
« Respuesta #3 en: 15 de Febrero de 2006, 17:07:00 »
Escrito originalmente por SJD2
si, pero en el Pdf del CCS pone la instrucción #org (dirección); por ejemplo para ir a la pagina uno, eso para que sirve. y si yo kiero porque si cambiar de página, no puedo?
me han mandado esto hace 3 semanas y me estoy rompiedo la cabeza. al final no se hace aquí?..



A ver,si entiendo bien tu punto.

Tu quieres que tu software cuando hay una interrupción vuelva a la pagina donde estaba? es decir que si tu subrutina está en la pagina 1 y ocurre uuna interrupción, tu quieres que vuelva donde estaba? O pretendes cambiar la ubicación de la rutina de gestión de interrupciones??


Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado SJD2

  • PIC10
  • *
  • Mensajes: 27
RE: cambio de página con el 16f877 en c
« Respuesta #4 en: 16 de Febrero de 2006, 04:48:00 »
me han dixo que en c no hace falta cambiar de página porque el compilador me lo hace automático, pero en un compilador de c(el ccs) hay una instruccion #org (direccion) para ir donde quiera. si configuro los bits del pclath y pongo un #org 0x900 cambiaria de página?
siempre que pongo #org 0x900 me da error ¿porque?

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: cambio de página con el 16f877 en c
« Respuesta #5 en: 16 de Febrero de 2006, 05:54:00 »
Escrito originalmente por SJD2
me han dixo que en c no hace falta cambiar de página porque el compilador me lo hace automático, pero en un compilador de c(el ccs) hay una instruccion #org (direccion) para ir donde quiera. si configuro los bits del pclath y pongo un #org 0x900 cambiaria de página?
siempre que pongo #org 0x900 me da error ¿porque?


Creo que estas mezclando las cosas y encima no estas siendo muy claro con tus objetivos.

En C no hace falta todo eso, porque en realidad el compilador se encarga de hacerlo automáticamente, yo te pregunté de esa forma porque realmente no entiendo que es lo que intentas realizar.

El uso del #org por parte del CCS, es realmente una aberracion técnica.  Me limito a no opinar mas del tema CCS porque realmente no van por el rumbo que yo considero que debiera ser un compilador de C. (yo uso el C18 de Microchip)

En realidad termina siendo un lenguaje de macros, mas o menos con alguna sentencia de C.

Ahora bien, volviendo al tema, si tu utilizas org le estas diciendo al compilador que el código que escribes se comenzará a ubicar a partir de esa posición.  En esto tienes que tener cuidado ya que suele existir "reglas" para meter tal tipo de sentencias.  Hace años no uso el CCS por las mencionadas razones pero si lo que quieres es cargar el PCLATH con algo, hazlo y ya.  Que problema hay?

El punto es que como no me queda claro bien lo que quieres hacer, dificil es aconsejarte al respecto.

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado SJD2

  • PIC10
  • *
  • Mensajes: 27
RE: cambio de página con el 16f877 en c
« Respuesta #6 en: 16 de Febrero de 2006, 12:56:00 »
Exactamente lo que deseo hacer es diseñar un programa escrito en la página 0 con una interrupcion que salte a la pagina 1 y en ella lea otra parte del programa y regrese a la pagina 0.
Es mas que nada algo didactico que me han mandado para comprender el funcionamiento, y no estamos convencidos que cambie sola, despues de haber probado a llenar mas de 2k, nos da error de compilacion (out off rom).
¿tienes algun ejemplo?, para ver si lo entiendo.
Espero haberme espresado medianamente bien, no tengo nada dominado esto y me cuesta.
Muchas gracias, por las molestias.


 

anything