Gast
#301421
Ein Hallo an alle,
Ich habe ein Problem mit folgendem Code Vision Code.
do{
SR_counter++;
SR = SR_counter / 8;
SR_bit = SR_counter % 8;
set_clk;
clr_clk;
} while(!((1<<SR_bit ) & (SR_array[SR])));
Diese do while Schleife soll in einem Schieberegister ( der Reihe nach
) genau dort eine "1" schreiben, wo im SR_array eine "1" steht. Da
es sehr viele Schieberegister sind und nur eine "1" immer
durchgeschoben werden soll, verzichte ich auf ein vollständiges Update
und schiebe diese "1" nur durch.
Funktioniert auch soweit.
Jetzt das Problem:
Beim Ausführen des Codes wird jedoch genau an der Stelle (SR_array[SR])
das erste untere Halb Byte des Schieberegisters überschrieben.(Aus
zB.0b11110111 wird 0b11110000) Woher weiß ich das?
Wenn ich (SR_array[SR]) ersetzte mit z.B. 0b01010100 bleibt der Wert im
array erhalten, der vorher drin stand.
Bin ratlos und würde mich über eine Idee über die mögliche Fehler -
Ursache freuen.
Bis dahin Gruß