0

http://www.electronicsplanet.ch/mikrocontroller/source-code/ATMega16/ATmega16-ADC-Interrupt.htm

我尝试初始化mega16的AD。它有效,但线路

ADCSRA |= (1<<ADEN)|(1<<ADPS2)    // Enable ADC, set prescaler to 16
         |(1<<ADIE);              // Fadc=Fcpu/prescaler=1000000/16=62.5kHz
                                  // Fadc should be between 50kHz and 200kHz
                                  // Enable ADC conversion complete interrupt

我不清楚。1000000 是从哪里来的,又是什么意思?

谢谢!

4

2 回答 2

1

预分频器是指如何对主时钟进行分频,为 ADC 提供时钟。ADC 的时钟由主时钟提供,带有一个可选的预分频器。在示例中,1000000 表示微控制器的主时钟频率为 1 MHz。如果预分频器设置为 16,则 ADC 的频率将为 1000000/16 = 62.5kHz。

当然,如果你的主时钟不同,你必须为ADC计算你自己的频率。

于 2013-01-25T10:52:25.373 回答
1

1000000 Hz 是运行设备的时钟频率。

默认情况下,mega 将在内部 8 MHz RC 振荡器上运行,并设置 clk/8 熔丝,使默认频率为 8MHz/8 = 1MHz

因此,您将 FCPU 视为 1000000。

于 2016-11-01T04:54:22.377 回答