AVRマイコンAVR128DA28の学習中です。 ビルド時のエラーについてお尋ねします。 エラーは下記です。
AVRマイコンAVR128DA28の学習中です。 ビルド時のエラーについてお尋ねします。 エラーは下記です。 _builtin_avr_delay_cycles expects a compile time integer constant やろうとしているのは下記です。設定等は行っていますがここでは省略します。 ADC0.RESは、12ビットに設定しています。 ------------ ここから ---------------- unsigned int R_WADC; // AD変換値格納グローバル変数 void ADCGET(void) { while (!(ADC0.INTFLAGS & ADC_RESRDY_bm)); R_WADC = ADC0.RES; } ADCGET(); _delay_us(R_WADC); ------------ ここまで ---------------- R_WADCが取りうる値は(ADC0.RESが12ビットに設定だから)0~4095となります。 試しに_delay_us(R_WADC);のところを_delay_us(0);や_delay_us(4095);の数字を入れるとエラーは出ません。 原因分かる方、ご教示願います。
ベストアンサー
> _builtin_avr_delay_cycles expects a compile time integer constant このエラーメッセージを翻訳すればすぐに分かります。 _delay_us(R_WADC); constant=定数なので、変数は指定できません、と言うことです。
早速の回答ありがとうございます。 訳:_builtin_avr_delay_cyclesは、コンパイル時の整数定数を想定しています 言われてみるとそうですね。見てたんですけど、理解が足りませんでした。 お礼まで。
質問者からのお礼コメント
早々に回答頂けて助かりました。 ありがとうございました。
お礼日時:5/23 12:29