TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado 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();
}
//...............................................
-
CCS no permite punteros a rom :(
Saludos!
-
Opssss... :?
Un pena que no se pueda.
Gracias Suky, quedo en deuda.
Saludos a todos.
Facuando
-
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!
-
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:
-
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!
-
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.
-
CCS es el Arduino de los PICs. ;-)
-
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!
-
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!!!
-
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
-
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!