32ビットを設定しているときにコードにコンパイラの警告があります。コードは機能しますが、この警告は私を悩ませます。
コンパイラはKeilC、プロセッサは32ビットARMです。コードは以下の通りです
PINSEL0 |= PINSEL_AD15;
ここで、PINSEL0
は32ビットレジスタで、次のように定義されます。
#define PINSEL0 (*((volatile unsigned long *) 0xE002C000))
次のようにPINSEL_AD15
定義されます。
#define PINSEL_AD15 ((1<<30)|(1<<31))
私が受け取っている警告メッセージは次のとおりです。整数演算の結果が範囲外です