我正在使用ATmega328。我目前正在使用10位ADC进行多次测量。我想存储它在变量中转换的值,以便能够与它们一起操作。例如:AVR在C - 存储变量中的寄存器值
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,指向。尽管请注意应用笔记中的文字是“如果中断函数访问相同的资源,则访问必须进行原子操作”。如果没有访问ADC的中断,则没有问题。 – ilkkachu
从OP的代码中可以看出,当这个存储器被存储时,是否有其他ADC可以启动。比对不起更安全。 – TomServo