用c语言在IAR环境下实现k60单片机ADC0初始化,要求: (1)选择通道SE9、单端转换、时钟为总线时钟1/2、ADC分频系数为8、长时采样、长时时间6个二外ADCK循环、高速转换、软件触发、连续转换、硬件平均启动、平均数目为16。启动ADC。
时间: 2023-10-20 15:06:37 浏览: 161
下面是实现k60单片机ADC0初始化的代码:
```
#include "MK60D10.h"
void ADC0_Init(void)
{
// 打开ADC0时钟
SIM_SCGC6 |= SIM_SCGC6_ADC0_MASK;
// 选择通道SE9
ADC0_SC1A |= ADC_SC1_ADCH(9);
// 单端转换
ADC0_SC1A &= ~ADC_SC1_DIFF_MASK;
// 时钟为总线时钟1/2
ADC0_CFG1 |= ADC_CFG1_ADIV(3);
// ADC分频系数为8
ADC0_CFG1 |= ADC_CFG1_ADIV(2);
// 长时采样
ADC0_CFG1 |= ADC_CFG1_ADLSMP_MASK;
// 长时时间6个二外ADCK循环
ADC0_CFG2 |= ADC_CFG2_ADLSTS(3);
// 高速转换
ADC0_CFG2 |= ADC_CFG2_ADHSC_MASK;
// 软件触发
ADC0_SC2 &= ~ADC_SC2_ADTRG_MASK;
// 连续转换
ADC0_SC3 |= ADC_SC3_ADCO_MASK;
// 硬件平均启动
ADC0_SC3 |= ADC_SC3_AVGE_MASK;
// 平均数目为16
ADC0_SC3 |= ADC_SC3_AVGS(3);
// 启动ADC
ADC0_SC1A |= ADC_SC1_ADCH(9) | ADC_SC1_AIEN_MASK;
}
```
在上述代码中,我们首先打开ADC0时钟,然后设置ADC的各项参数,最后启动ADC。其中,我们使用了k60单片机的头文件,因此可以直接使用其提供的宏定义。
阅读全文