I was wondering why I would receive this error when I add the volatile keyword - I am new to embedded C but my understanding was that it just told the complier not to optimize the variable?
This code give me no errors
void display_text(char *dispString) { char myLcdBuffer[20]; U32 i; my_strcpy(myLcdBuffer, dispString); /* * Send the data to the LCD screen */ for (i = 0; i < strlen(myLcdBuffer); i++) { SER_PutCharLcd(myLcdBuffer[i]); } }
However if I add the volatile keyword to the char myLcdBuffer
void display_text(char *dispString) { volatile char myLcdBuffer[20]; U32 i; my_strcpy(myLcdBuffer, dispString); /* * Send the data to the LCD screen */ for (i = 0; i < strlen(myLcdBuffer); i++) { SER_PutCharLcd(myLcdBuffer[i]); } }
I get this error msg - error: #167: argument of type "volatile char *" is incompatible with parameter of type "const char *"
<quote>From the link above: (etcetera etcetera)</quote>
Tapir,
You have provided a very good explanation and I am glad to say you are correct.
It fills me with pride to see that you have learnt how to interpret, understand and respond.
Well done. Five gold stars.
Always yo're freind,
Teacher Zeusti (retired)
"Stupid is as stupid does".
So you waited all the way until "Always yo're freind," before you decided to add some faked language errors.
<quote>So you waited all the way until "Always yo're freind," before you decided to add some faked language errors.</quote>
Nope. Check his name.
Remember back to what I said before [to you] regarding this style.