私はATmega328を使用しています。私は現在、10ビットADCを使用していくつかの測定を行っています。私はそれを操作できるように、変換する値を変数に保存したいと思います。例えば:C言語のAVR - 変数にレジスタの値を格納
int a;
(...)
ADMUX = 0b01000011; //Vref = 5V, ADC3
ADCSRA |= (1<<ADSC); //Starts conversion
while(!(ADCSRA & (1<<ADIF))); //Wait until it finishes
ADCSRA |= (1<<ADIF); //Clear flag
はADCがADCH:ADCL
の値576
に格納されたとします。どういうわけか、変数a
を同じ値にすることは可能ですか? (すなわち、a=576;
)。
これは破損する可能性があります。次の回答を参照してください。 – TomServo
@JLH、point。アプリケーションノートのテキストは、「割り込み関数が同じリソースにアクセスする場合は、アクセスはアトミック操作にする必要があります」ということに注意してください。 ADCにアクセスする割り込みがない場合は問題ありません。 – ilkkachu
OPのコードから、このADCが格納されている間に別のADCが起動するかどうかは分かりません。転ばぬ先の杖。 – TomServo