-
-
Erfahrener Benutzer
Roboter Experte
Hallo Pebisoft,
Ich mochte es nochmal zusammenfassen um es fur michselbst gut zu verstehen.
In assemblercode werden registers r24/r25 benutzt um variabelen werte zu testen.
//hier wird 0x33 in r24 geladen und r24 nach myChar ram speicherplatz kopiert
myChar=0x33;
//Bei non-volatile wird angenommen das 0x33 sich noch immer in r24 bevindet und wird nur r24 abgefragt..
if(myChar){} while(myChar){}
//Bei volatile wird angenommen das 0x33 sich nicht mehr in r24 bevindet und wird zuerst speicherplatz myChar nach r24 kopiert und dann wird r24 abgefragt..
if(myChar){} while(myChar){}
'volatile' heisst 'fluchtig' dass heist die wert konnte sich inzwissen geanderd haben.
Zuzammengefasst:
non-volatile:
- neuwert von variable x wird nicht getestet
- anfangswert unbekannt
volatile:
- immer die neuwert von variabele x wird getestet
- anfangswert immer 0
Ich hab die anfangswert mit Asuro Robot ausgetestet und ist auch bei volatile und non-volatile immer 0 aber vielleicht macht das bootprogram eine ram initialisation.
Gruss
Henk
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen