This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Question on volatile keyword

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 *"

Parents
  • <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)

Reply
  • <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)

Children