Zitat Zitat von Ceos
wäre es ratsam einen nicht volatile temp variable zu nehmen (vll. sogar ne registervariable) in die ich den wert der variable lege und dann damit vergleiche anstelle ?
Ja, so was ist gängige Praxis.
Code:
volatile uint8_t var;
...
   while (1) {

      uint8_t tmp_var = var;

      if (tmp_var== ....
      ...
So ist sichergestellt, dass 1 mal pro Schleifendurchlauf der aktuelle Wert von var aus dem Speicher gelesen wird, und die ganze "Arbeit" kann mit einer lokalen Kopie in einem Register gemacht werden.