我正在使用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