AVR 示例代码解释请
Posted
技术标签:
【中文标题】AVR 示例代码解释请【英文标题】:AVR Samplecode Explanation please 【发布时间】:2013-01-07 08:58:36 【问题描述】:来自
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是从哪里来的,又是什么意思?
谢谢!
【问题讨论】:
【参考方案1】:预分频器是指如何对主时钟进行分频,为 ADC 提供时钟。 ADC 的时钟由主时钟提供,带有一个可选的预分频器。在示例中,1000000 表示微控制器的主时钟频率为 1 MHz。如果预分频器设置为 16,则 ADC 的频率将为 1000000/16 = 62.5kHz。
当然,如果你的主时钟不同,你必须为ADC计算自己的频率。
【讨论】:
【参考方案2】:1000000 Hz 是设备运行的时钟频率。
默认情况下,mega's 将运行在带有 clk/8 熔丝的内部 8 MHz RC 振荡器上,默认频率为 8MHz/8 = 1MHz
因此您看到 FCPU 为 1000000。
【讨论】:
以上是关于AVR 示例代码解释请的主要内容,如果未能解决你的问题,请参考以下文章