Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Podivné chování programu pro Arduino

Zdar, může mi někdo fundovanej vysvětlit co dělám špatně? Uvedu část programu:

//tady je nějaká předchozí část programu

byte bajt1;
byte bajt2;

//tady se v programu načtou hodnoty bajt1 a bajt2

bajt1 = (bajt1 & 0b10000000) >> 7 | (bajt2 << 1);

//pokračuje program

tohle nefunguje a v bajt1 je vždy jen bajt2 posunutý o jedno místo doleva.

//tady je nějaká předchozí část programu

byte bajt1;
byte bajt2;

//tady se v programu načtou hodnoty bajt1 a bajt2

bajt1 = (bajt1 & 0x80) >> 7 | (bajt2 << 1);

//pokračuje program

tohle funguje a v bajt1 je správně jeho poslední bit plus bajt2 posunutý o jedno místo doleva.

je něco shnilého v AVR GCC nebo je chyba někde jinde?

Předmět Autor Datum
Si si isty? Ked si pozres prelozene instrukcie tak tam je co? (prekladac by mal byt schopny generova…
MM.. 05.06.2015 10:11
MM..
Jsem si stoprocentně jistý. Programoval jsem algoitmus Conway's Game of Life. Pokud jsem použil biná… nový
mia 05.06.2015 10:27
mia
Tak už to vím: Unfortunately, most C++ compilers do not have any means of expressing binary numbers… poslední
mia 05.06.2015 10:52
mia

Jsem si stoprocentně jistý. Programoval jsem algoitmus Conway's Game of Life. Pokud jsem použil binární interpretaci, generovalo to buňky v rámci jednoho řádku, tj. 8 bitů a přes to to nepřelezlo - nezkontrolovalo to souseda v řádku nad a pod. Jakmile jsem použil hexa, začlo se to chovat tak jak má. Mám k dispozici *.hex, zkusím to rozpitvat.

Tak už to vím:

Unfortunately, most C++ compilers do not have any means of expressing binary numbers directly in source code. A few allow the prefix 0b followed by a series of 0 and 1 digits, e.g. 0b11 == 3. The C++ compiler used by Arduino does not support this syntax. However, starting in Arduino 0007, the constants B0 through B11111111 are defined for your convenience.

takže kompilátor ten tvar neumí. Je zajímavé, že při překladu nehlásí chybu.

Zpět do poradny Odpovědět na původní otázku Nahoru