【MSPM0L1306 LaunchPad】ADC测试
[复制链接]
这篇通过官网的来学习下ADC测试。
一、ADC内部框图
二、测试硬件
2.1、测试电路
测试例程用到PA25引脚,需要将J4跳线断开。
2.2、硬件连接图
三、软件配置
使用CCS软件配置ADC
四、测试代码
4.1、adc.c
#include "ti_msp_dl_config.h"
#include "adc/adc.h"
#include <stdio.h>
volatile bool gCheckADC;
volatile uint16_t gAdcResult;
void ADC12_0_INST_IRQHandler(void)
{
switch (DL_ADC12_getPendingInterrupt(ADC12_0_INST))
{
case DL_ADC12_IIDX_MEM0_RESULT_LOADED:
gCheckADC = true;
break;
default:
break;
}
}
void init_adc(void)
{
NVIC_EnableIRQ(ADC12_0_INST_INT_IRQN);
gCheckADC = false;
}
void adc_test(void)
{
float adv=0.0;
DL_ADC12_startConversion(ADC12_0_INST);
if(gCheckADC==true)
{
gCheckADC = false;
gAdcResult = DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_0);
adv=(float)gAdcResult/4096*3.3;
printf("AdcResult=%f\r\n",adv);
DL_ADC12_enableConversions(ADC12_0_INST);
}
}
4.2、main.c
#include "ti_msp_dl_config.h"
#include "systick/systick.h"
#include "led/led.h"
#include "uart/uart.h"
#include <string.h>
#include <stdio.h>
#include "adc/adc.h"
int main(void)
{
uint8_t js=0;
SYSCFG_DL_init();
init_adc();
led2_r_off();
led2_g_off();
led2_b_off();
while (1)
{
adc_test();
led2_r_tog();
SysTick_Delay_ms(50);
}
}
五、程序运行
调整电位器,终端打印采集的电压值。
|