【翌创ET6001】-05 ADC测试
<div class='showpostmsg'><p>ADC测试仅仅是按照例程来做修改的,做了简单的测试,按照例程的来,首先我们看看原理图。</p><div style="text-align: center;"></div>
<div style="text-align: center;">可调电阻的是做了分离设计的,并没有连接到ADC的引脚,所以需要用跳线连接到引脚上</div>
<div style="text-align: center;"> </div>
<div style="text-align: center;">
<div style="text-align: center;"></div>
<div style="text-align: center;">我们的硬件端的是连接到ADC0的,</div>
<div style="text-align: center;">然后看看我们的代码</div>
<div style="text-align: left;"> </div>
<div style="text-align: left;"> </div>
<div style="text-align: left;">
<pre>
<code>#include "DRV_ADC.h"
#include "DRV_UART.h"
void ADC_SingleSample_Config(void)
{
ADC_InitTypeDef stInit;
/* 复位ADC0,并开启该外设的时钟 */
ADC_DeInit(ADC0);
/* 校准ADC0 */
ADC_StartCalibration(ADC0);
/* 初始化ADC */
ADC_StructInit(&stInit);
stInit.virtualChannelMask = ADC_VIRTUAL_CHANNEL0;
stInit.workMode = ADC_WORK_MODE_SINGLE;
stInit.trigMode = ADC_TRIGGER_MODE_CONTINUOUS;
stInit.trigger = ADC0_TRIGGER_SRPWM_ROW0_COL0;
ADC_Init(ADC0, &stInit);
/* 将模拟通道0映射到虚拟通道0 */
ADC_ACRemapSingle(ADC0, ADC_VIRTUAL_CHANNEL0, ADC_ANALOG_CHANNEL0);
/* 使能ADC */
ADC_CoreEnable(ADC0);
/* 使能虚拟通道 */
ADC_VCEnable(ADC0, ADC_VIRTUAL_CHANNEL0);
}
void SRPWM_Config(void)
{
SRPWM_TBInitTypeDef stTBInit;
/* 复位SRPWM0,并开启SRPWM0的时钟 */
CRG_PeriphReset(CRG_SRST_SRPWM0);
/* 初始化 */
SRPWM_TBStructInit(&stTBInit);
stTBInit.period = 0xFFFF;
stTBInit.countMode = SRPWM_COUNTMODE_UP;
SRPWM_TBInit(SRPWM0, &stTBInit);
/* 使能SRPWM0的ADC同步信号0事件输出:周期事件 */
SRPWM_OEPAdcSyncEnable(SRPWM0, SRPWM_OUTEVT_SYNC_PRD_EVT, SRPWM_SYNC0);
/* 选择给ADC的触发信号 */
SRPWMCOM_SelectADCTrigger(SRPWMCOM_ADCTriggerRow0, SRPWMCOM_ADCTriggerCol0, SRPWMCOM_ADC_SRPWM0_TRIGGER0);
/* 使能高精度旁路 */
SRPWM_HRPWMBypassEnable(SRPWM0);
/* 使能PWM模块 */
SRPWMCOM_Enable(SRPWM_CHANNEL_0);
}
void Test_ADC_Init(void)
{
ADC_SingleSample_Config();
SRPWM_Config();
}
void ADC_Test(void)
{
unsigned int ret=0;
/* 等待采样完成 */
while (ADC_GetVCResultStatus(ADC0, ADC_VIRTUAL_CHANNEL0) != SET);
/* 获取采样数据 */
ret = ADC_S16D2toUint(ADC_GetVCResult(ADC0, ADC_VIRTUAL_CHANNEL0));
/* 打印采样结果 */
printf("adc sample code: %d \r\n", ret);
}
</code></pre>
<p>主函数的代码就只是调用,这里就不写了</p>
<p>我们来看看结果吧</p>
<div style="text-align: center;"></div>
<div style="text-align: center;">串口端在不停的刷新采样的数值,</div>
<div style="text-align: center;"> </div>
<div style="text-align: center;">转动电阻,可以看到采样数值的变化。</div>
<div style="text-align: center;">好了,今天就到这里了。</div>
<p> </p>
</div>
<div style="text-align: left;"> </div>
<div style="text-align: left;"> </div>
<div style="text-align: left;"> </div>
<p> </p>
</div>
<p> </p>
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> <p>串口端在不停的刷新采样的数值结果还是可以滴吧</p>
页:
[1]