TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Facundo en 05 de Noviembre de 2010, 18:46:35

Título: Puntero a cadena [dudas]
Publicado por: Facundo en 05 de Noviembre de 2010, 18:46:35
Hola gente!!!!
Tengo el siguiente código que basicamente crea una cadena en la FLASH de un 2550, y necesito acceder a estos elementos mediante un puntero.
Si creo la cadena asi como se muestra NO FUNCIONA pero si creo la cadena sin "const" si funciona, porqueeeeeeee.
El puntero si funciona en RAM pero no puedo hacer lo mismo en la FLASH.
Alguien me puede explicar que estoy haciendo mal o como se hace esto.

Muchas Gracias y suerte para todos!!!


Facundo


//.................................................
 const char uno [30]={

0x03,0x00,0x18,0x18,0x1C,0xFE,0xFE,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x7F,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
};

unsigned char *p;
unsigned char a=0;

void main(){
p =&uno[0];
a= p[0];
sleep();
}
//...............................................
Título: Re: Puntero a cadena [dudas]
Publicado por: Suky en 05 de Noviembre de 2010, 19:00:26
CCS no permite punteros a rom  :(


Saludos!
Título: Re: Puntero a cadena [dudas]
Publicado por: Facundo en 05 de Noviembre de 2010, 20:18:18
Opssss...  :?

Un pena que no se pueda.

Gracias Suky, quedo en deuda.

Saludos a todos.


   Facuando


Título: Re: Puntero a cadena [dudas]
Publicado por: bmb en 05 de Noviembre de 2010, 20:41:50
Dale una mirada a las páginas 48, 49 y 50 Using Program Memory for Data del Manual de CCS (http://www.ccsinfo.com/downloads/ccs_c_manual.pdf) allí veo algo que te podría servir:

Saludos!
Título: Re: Puntero a cadena [dudas]
Publicado por: Suky en 05 de Noviembre de 2010, 20:53:15
Hay que probar  :? Muchas de las cosas con punteros dicen que funciona, intentas ponerlas en practica, no funcionan, les preguntas, NO contestan!  :5] Por eso mejor usar otros compiladores  :mrgreen:
Título: Re: Puntero a cadena [dudas]
Publicado por: bmb en 05 de Noviembre de 2010, 21:02:18
Hola Suky, claro con CCS siempre hay que probar.   A mi me ha parecido un buen compilador, aclarando que yo solo hago programas no muy complejos.  Algún día me animo y sigo tu tutorial de C18 que es el que me gustaría aprender.

Saludos!
Título: Re: Puntero a cadena [dudas]
Publicado por: manwenwe en 05 de Noviembre de 2010, 22:11:47
CCS no permite punteros a rom  :(


Saludos!

Que qué????????????????? jajajajaj

De verdad: respeto todas las posiciones pero no entiendo lo de CCS... Cuando empezé con C para PIC lo probé pero cuando vi que para poner en "alto" un pin tenías que llamar a una función precompilada "ouput(portb)"...o no se que.... dije: "madre mía del señor"... esto no es C... esto es "Sanscrito" jeje

Sinceramente: creo que si no diesen soporte para PIC16, 14, 12 y 10.... no "se comerian un rosco"...

Sin ánimo de ofender a nadie. Saludos.
Título: Re: Puntero a cadena [dudas]
Publicado por: migsantiago en 05 de Noviembre de 2010, 23:26:52
CCS es el Arduino de los PICs.  ;-)
Título: Re: Puntero a cadena [dudas]
Publicado por: Suky en 06 de Noviembre de 2010, 00:35:17
Tampoco hay que darle con un caño, es un compilador muy útil y sencillo de aprender. Tiene sus pro y sus contras, y las contras aparecen en códigos complejos que con paciencia pueden saltearse, pero hay casos que se hace imposible, pero bueno hay otras alternativas.  ;-)

Además de que puede trabajar, desde un PIC10 hasta un PIC18 casi sin inconvenientes, y hasta con dsPIC    :lol:



Saludos!
Título: Re: Puntero a cadena [dudas]
Publicado por: manwenwe en 06 de Noviembre de 2010, 14:21:38
Tampoco hay que darle con un caño, es un compilador muy útil y sencillo de aprender. Tiene sus pro y sus contras, y las contras aparecen en códigos complejos que con paciencia pueden saltearse, pero hay casos que se hace imposible, pero bueno hay otras alternativas.  ;-)

Además de que puede trabajar, desde un PIC10 hasta un PIC18 casi sin inconvenientes, y hasta con dsPIC    :lol:



Saludos!

No lo pongo en duda. Ademas, para poner un LCD o un puerto serie posiblemente sea más sencillo y rápido que C18... aunque me parece menos flexible.

Además puesto a dar caña tb habría que darle mucha caña a Microchip. Creo que deberían plantearse seriamente darle una vuelta de tuerca a su IDE o simplemente hacer que sus compiladores sean compatibles con alguna otra IDE más moderna como Eclipse. Luego está el tema compliadores/librerías: sacan micros mucho más potentes con periperícos modernos (PIC32MX) pero no sacan herramientas más potentes??? inexplicable!!!. Los que hicieron la librería gráfica se merecen un altar:decenenas de miles de lineas de código en C utilizando structs para emular objetos... structs declarados dentro de otros strcuts para emular herencia jejeje ejeje. Luego los que utilizamos las librerías nos volvemos locos buscando de donde viene el puntero...Por favor: un compilador en C++ YA!!!
Título: Re: Puntero a cadena [dudas]
Publicado por: Suky en 06 de Noviembre de 2010, 14:27:45
Tampoco hay que darle con un caño, es un compilador muy útil y sencillo de aprender. Tiene sus pro y sus contras, y las contras aparecen en códigos complejos que con paciencia pueden saltearse, pero hay casos que se hace imposible, pero bueno hay otras alternativas.  ;-)

Además de que puede trabajar, desde un PIC10 hasta un PIC18 casi sin inconvenientes, y hasta con dsPIC    :lol:



Saludos!

No lo pongo en duda. Ademas, para poner un LCD o un puerto serie posiblemente sea más sencillo y rápido que C18... aunque me parece menos flexible.

Además puesto a dar caña tb habría que darle mucha caña a Microchip. Creo que deberían plantearse seriamente darle una vuelta de tuerca a su IDE o simplemente hacer que sus compiladores sean compatibles con alguna otra IDE más moderna como Eclipse. Luego está el tema compliadores/librerías: sacan micros mucho más potentes con periperícos modernos (PIC32MX) pero no sacan herramientas más potentes??? inexplicable!!!. Los que hicieron la librería gráfica se merecen un altar:decenenas de miles de lineas de código en C utilizando structs para emular objetos... structs declarados dentro de otros strcuts para emular herencia jejeje ejeje. Luego los que utilizamos las librerías nos volvemos locos buscando de donde viene el puntero...Por favor: un compilador en C++ YA!!!


Bueno el IDE están trabajando  ;-) MPLAB X IDE. Ahora lo de las librerías es cierto, el otro día estaba estudiandolas un poco y es para quedar  :z)  :D :D
Título: Re: Puntero a cadena [dudas]
Publicado por: manwenwe en 06 de Noviembre de 2010, 14:46:28
No lo conocía suky: gracias!. Bajando: a ver que tal!. No había visto nada en la web de Microchip: y ahora tp lo puedo buscar xq parece caida XD

En cuanto a los compiladores/librerías ya te digo... en ocaciones tienes que tener dotes de adivinadora. Es graciosisimo cuando utilizando uno de estos "pseudo-objetos" te equivocas y llamas al de una "clase" en vez de al adecuado y el compilador evidentemente no te dice nada: pones en marcha el debugger y cuando paras te das cuenta que estás en "la absoluta nada", es decir, que el PIC no sabe ni donde está jajajajaja

En fin... la IDE-beta ya es suficiente por hoy: paciencia!