|
|||||||||||
Technical Support On-Line Manuals Cx51 User's Guide ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
volatileThe volatile type qualifier is used to restrict assumptions the compiler makes about object values. For example: unsigned char reg1; // Hardware Register #1 unsigned char reg2; // Hardware Register #2 void func (void) { while (reg1 & 0x01) // Repeat while bit 0 is set { reg2 = 0x00; // Toggle bit 7 reg2 = 0x80; } }
This program uses two variables ( These effects are caused by the optimizer and are not bugs generated by the compiler. In fact, these are the types of optimizations the compiler should make. However, in this case they are certainly undesirable. The volatile type qualifier was introduced to solve these types of problems. For example: volatile unsigned char reg1; // Hardware Register #1 volatile unsigned char reg2; // Hardware Register #2 void func (void) { while (reg1 & 0x01) // Repeat while bit 0 is set { reg2 = 0x00; // Toggle bit 7 reg2 = 0x80; } }
By defining | ||||||||||
|
Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.