Autor Tema: Vectores de char en PIC16f886  (Leído 4699 veces)

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

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Vectores de char en PIC16f886
« Respuesta #15 en: 25 de Mayo de 2011, 15:57:46 »
Hola Maunix, si se entiende perfectamente.  Muchas gracias !!!

Saludos !

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Vectores de char en PIC16f886
« Respuesta #16 en: 25 de Mayo de 2011, 15:59:57 »
También me gustaría aprenderlo  :)

Ah no, por cantidad es otro precio  :D :D

Aaa.. en asm!  :D  CCS de por si solo no lo soluciona, o sea como para hacer un buffer de 256 elementos y trabajarlos de forma comun, hay que inventar algo como lo que muestra PalitroqueZ en el ejemplo que da.

Pero en C18! Seguramente te refieres a que C18 divide la memoria en bancos, y que si se quiere trabajar con un buffer mayor a 256 hay que modificar el *.lkr, pero la memoria es lineal, así que no tienes problemas.

Ahora uno de los problemas que tuve al realizar eso en C18 fue que si una variable multibyte pertenece a dos bancos consecutivos (por supuesto) no funciona correctamente  :? Por eso lo trabajé con punteros  :D


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Vectores de char en PIC16f886
« Respuesta #17 en: 25 de Mayo de 2011, 16:08:46 »

Aaa.. en asm!  :D  CCS de por si solo no lo soluciona, o sea como para hacer un buffer de 256 elementos y trabajarlos de forma comun, hay que inventar algo como lo que muestra PalitroqueZ en el ejemplo que da.
Ah, por eso ni idea, no uso ccs jiji.


Pero en C18! Seguramente te refieres a que C18 divide la memoria en bancos, y que si se quiere trabajar con un buffer mayor a 256 hay que modificar el *.lkr, pero la memoria es lineal, así que no tienes problemas.

Ahora uno de los problemas que tuve al realizar eso en C18 fue que si una variable multibyte pertenece a dos bancos consecutivos (por supuesto) no funciona correctamente  :? Por eso lo trabajé con punteros  :D

El que tiene la división en bancos es la arquitectura PIC18, que con punteros se pueda acceder a toda la ram ese es otro cantar.  Lo que tienen de ventajoso es que los registros especiales estan al final por lo tanto entre banco y banco no hay mas que ram de usuario y ram de usuario por eso se puede hacer de esta forma.

El uso de punteros entre bancos es necesario ya que necesitas si o si usar ambos FSRL y FSRH para poder traspasar el banco o mejor dicho "trabajar sin bancos". Ppor defecto C18 solo usa el FSR Low para hacer más ágil el código, mas optimizado y más veloz. 

- 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 RAPTOR4485

  • PIC10
  • *
  • Mensajes: 1
Re: Vectores de char en PIC16f886
« Respuesta #18 en: 18 de Junio de 2011, 17:03:16 »
Saludos, Estoy usando un pic16f877a y lo estoy programando en MikroC, se me ha presentado un problema parecido al mencionado en este foro y es que una vez que he llegado a un porcentaje mayor al 50% de la memoria RAM al compilar me sale una advertencia que dice que la IRP debe ponerse en "1" para direccionamiento indirecto para "una determinada variable que puse digamos contador", mi pregunta es si alguien ha manejado MikroC y como puedo hacer para poder trabajar con toda la memoria.......  les agradezco cualquier ayuda o consejo que puedan darme...