hamayan です。お久しぶりです。
taji> printf ("init GRA1= %d\n", ITU1.GRA);
もともとこのコンパイラはint型が32bitではないでしょうか?。
printfのプロトタイプ宣言は、
int printf(const char * ,...);
なので、引数にint型が有っても、明示的にコンパイラに指示できず、
printf側では32bitの引数(例えばレジスタのER1)の内容をそのまま展
開しているだけ?。
コンパイラに明示的に型を教えてみては如何でしょうか。
printf("init GRA1= %u\n", (unsigned int)ITU1.GRA);