Vou explicar melhor: Eu tenho um projecto em que utilizo a UART do PIC18F6722, em que tenho um menu de configurações que efectuo através do Hiperterminal. Envio um pedaço de codigo:
cpp code
......
sprintf(CMP,"%s","gps\r");
if (strcmp(STR,CMP)==0)
{
fprintf(RS232,"\n\rLat.: %s",Get_Latitude());
fprintf(RS232,"\n\rLong: %s",Get_Longitude());
}
sprintf(CMP,"%s","ro\r");
if (strcmp(STR,CMP)==0)
fprintf(RS232,"\n\rRO: %f",Ro());
sprintf(CMP,"%s","lts\r");
if (strcmp(STR,CMP)==0)
{
fprintf(RS232,"\n\rP. Atm: %f",Pressao_Atmosferica());
fprintf(RS232,"\n\rAltura: %f",Altura_Actual());
fprintf(RS232,"\n\rLitros: %f",Litros_Actuais());
}
.....
em que utilizo muitas vezes a função fprintf.
Mas como o novo projecto tem um FT245RL "USB-barramento paralelo do lado do PIC", tenho que efectuar uma função parecida com a fprintf, para não utilizar muitas vezes sprintf ou strcpy. Por isso a função teste:
cpp code
void teste(char *ptr)
{
int i;
for (i=0;ptr[i]!='\0';i++)
send_ft245(ptr[i]);
}
void main()
{
teste("Parametro de entrada!");
}
Mas não funciona, dá este erro:
Line 132(18,19): Attempt to create a pointer to a constant
1 Errors, 0 Warnings.
Assim já funciona:
cpp code
void main()
{
char CMP;
sprintf(CMP,"%s",("Parametro de entrada!");
teste(CMP);
}
É que o projecto tem muita interacção com o utilizador, por isso necessita de muitas funções "strcpy" ou "sprintf", onde eu quero poupar.
Se tiver outra maneira de fazer o mesmo, é sempre bém vinda....
Obrigado.