И поэтому будет точно такая же фигня со сдвигами. Компилятор тебе сделал именно так, как там написано, потому что у Чена там стоит volatile. Вот если бы он сделал по другому - было бы удивительно. Ничего, что в AVR первый тип используется? Поставь второй, сравним. на самом деле я бы поискал в чем проблема. Скорей всего просто невыровненный адрес.