Tach NG,
ich zerbrech' mir grad den Schädel über leicht merkwürdiges Verhalten des hier verwendeten Microcontrollers, nem HCS12XDP512 von freescale.
In dem hier laufenden Programm nutze ich ein paar boole'sche Variablen und auch ein paar Integers als Bitfelder. Die Entwicklungsumgebung definiert bools simpel als char, und gibt TRUE und FALSE die Werte 1 und
0, genau so wie man es erwartet. Schau ich mir den Kram aber mal im Debugger an, so tauchen da ständig auch andere Werte auf, was die Abfrage (x == TRUE) bzw. (X == FALSE) komplett ad absurdum führt. Besonders häufig treten (dezimale) Werte auf wie 212, 128, aber auch nahezu alles andere wurde schon gesehen. Ähnliches passiert mit meinen Bitfeldern: eigentlich werden nur die unteren 4 bit eines 8-Bit-Integers verwendet, setzten per "x ODER Bit", Löschen per "x UND ~Bit". Soweit alles schick, bis ich das Programm anwerfe... Mir fällt überhaupt keine Möglichkeit ein, mit den 4 niederwertigsten Bits Zahlen größer 15 darzustellen, aber genau das passiert hier am laufenden Band.Habe bereits mehrfach erfolglos gesucht, ob nicht vielleicht irgendwo statt den logischen Operationen ne Addition oder ähnlich bescheuerte Dinge durchgerutscht sind, habe aber nichts dergleichen gefunden.
Hat jemand von Euch vielleicht ne Idee?
Gruß, Florian