freetech

kinetis入门之——AD转换

0
阅读(3476)

kinetis内置了16位高速SAR型ADC,能够进行快速AD转换。下面详述步骤:

1、在“Project Panel”面板下右击上个例程的工程文件“k10_led_pe”,点“复制”,再右击点“粘贴”

clip_image001

clip_image002

重新起个名字(这里取“k10_adc_pe”),点“确定”。

双击“Converter”下的“ADC_LDD”,如下图所示:

image

配置成如下图的样子:

image

“Methods”里“GetMeasurementCompleteStatus”选“generate code”,如下图所示:

image

产生代码。程序中添加下面代码:

AD1_TResultData MeasuredValues[1];
LDD_ADC_TSample SampleGroup[1];
LDD_TDeviceData *MyADCPtr;
LDD_TError Error;

  MyADCPtr = AD1_Init((LDD_TUserData *)NULL);             /* Initialize the device */
  SampleGroup[0].ChannelIdx = 0U;                         /* Create one-sample group */
  Error = AD1_CreateSampleGroup(MyADCPtr, (LDD_ADC_TSample *)&SampleGroup, 1U);  /* Set created sample group */
  Error = AD1_StartSingleMeasurement(MyADCPtr);           /* Start continuous measurement */
  while(1)
  {
      while(AD1_GetMeasurementCompleteStatus(MyADCPtr) != TRUE);
      {
          Error = AD1_GetMeasuredValues(MyADCPtr, (LDD_TData *)&MeasuredValues);
          Error = AD1_StartSingleMeasurement(MyADCPtr);
      }
  }

循环中不断进行状态判断并启动AD转换,可以设断点观察AD转换结果。实际上还可以连续多次AD转换求平均值,请自行试之。