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 は、実行中のデバイスのクロック周波数です。

デフォルトでは、メガは clk/8 ヒューズが設定された内部 8 MHz RC 発振器で動作し、デフォルトの周波数は 8MHz/8 = 1MHz になります。

したがって、FCPU は 1000000 と表示されます。

于 2016-11-01T04:54:22.377 に答える