I changed the code to
asm volatile("sbi 0x14, 4"::);
atn_rad = atan2(cos_rad,sin_rad);
asm volatile("cbi 0x14, 4"::);
and the compiler still reordered the statements to put both the sbi
and cbi statements before the atan().
Changing atan2() to asin() or acos() gives the same incorrect result.
Changing atan2() to sin() keeps the statements in the correct order.
tomdean
_______________________________________________
AVR-GCC-list mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/avr-gcc-list