2860|6

1460

帖子

1

TA的资源

五彩晶圆(初级)

楼主
 

【ESK32-360测评】+ A/D转换及应用 [复制链接]

 

1. A/D采集

在例程中提供A/D采集功能,它是通过采集外接的电位器来模拟电位变化,进而来获得数据的变化。此外,它通过串口通信来输出采集结果。

图1 电位器调节电位

 

经编译下载,程序的运行效果如图2所示。

图2 调整前的数据显示

 

为了改善观察效果,特添加了延时函数,修改后程序内容为:

void mdelay(unsigned int z)
{
         unsigned int x,y;
         for(x=z;x>0;x--)
                   for(y=100;y>0;y--);
}
int main(void)
{
  RETARGET_Configuration();
  ADC_Configuration();
  ADC_Cmd(HT_ADC0, ENABLE);
  ADC_SoftwareStartConvCmd(HT_ADC0, ENABLE);

  while (1)
  {
    if (gADC_SingleEndOfConversion)
    {
      printf("\rPotentiometer level is %04d \r\n", (int)gPotentiometerLevel);  //115200
    }
         mdelay(100);
  }
}

修改后的运行效果如图3所示,这样数据的变化就很便于观察了。

图3 调整后的数据显示

 

2.数据显示

前面为数据的显示,已经增添了数值显示函数,此时就可以排上用场了,实现图4显示效果的主程序如下:

int main(void)
{
  RETARGET_Configuration();
  ADC_Configuration();
  ADC_Cmd(HT_ADC0, ENABLE);
  ADC_SoftwareStartConvCmd(HT_ADC0, ENABLE);
 
  LCD_Init();
  LCD_Config();
  LCD_Clear(0x2c5c);
  LCD_BackColorSet(0x2c5c)
  LCD_TextColorSet(Yellow);
  LCD_StringLineDisplay(Line9, "     ADC=");
  while (1)
  {
    if (gADC_SingleEndOfConversion)
    {
       LCD_ShowNum(Line9,180,adc,4);
    }
         mdelay(100);
  }
}

图4 采集数据显示

 

3.波形绘制

为了能更直观地观察数据的变化趋势,绘制数据的波形曲线是一种有效的方法。

在利用前面完成的画线函数和区域填充函数的检测上,实现图5所示效果的主程序如下:

int main(void)
{
  int adc,p,q,t,l,k;
 
  RETARGET_Configuration();
  ADC_Configuration();
  ADC_Cmd(HT_ADC0, ENABLE);
  ADC_SoftwareStartConvCmd(HT_ADC0, ENABLE);
 
  LCD_Init();
  LCD_Config();
  LCD_Clear(0x2c5c);
  LCD_BackColorSet(0x2c5c);
  LCD_TextColorSet(Yellow);
  LCD_RectDraw(10, 10, 200, 300);
  LCD_DrawLine(105,12 , 105,308 ,Red);
  LCD_DrawLine(10,25 , 210,25 ,Red);
  LCD_StringLineDisplay(Line9, "  n=     adc=");
  mdelay(50000);
 
  for(t=0;t<60;t++)
  {
         l=t*5+10;
         LCD_DrawLine(210,l,214,l,Yellow);
  }
        
  for(t=0;t<10;t++)
  {
         l=t*21;    
         LCD_DrawLine(210-l,6,210-l,10,Yellow);
  }
  t=10;
  l=15;
  q=210;
  p=210;
  k=21;
  while (1)
  {
         mdelay(50000);
    if(gADC_SingleEndOfConversion)
    {
                   adc=(int)gPotentiometerLevel;
                   LCD_ShowNum(Line9,220,adc,4);
                   p=adc/21;
                   l=t+5;
                   LCD_ShowNum(Line9,60,t/5-1,3);
                   LCD_DrawLine(q,t,p,l,Yellow);
                   t=l;
                   q=p;
       
                   if(t>=305)
                   {
                      LCD_fill(11,11,199,297,0x2c5c);
                      LCD_DrawLine(105,12 , 105,308 ,Red);
                LCD_DrawLine(10,25 , 210,25 ,Red);
                t=10;
                      l=15;
                q=210;
                   }
    }
  }
}

图5 波形曲线绘制

最新回复

谢谢楼主分享! 还可以用在机器人上把   详情 回复 发表于 2020-8-13 11:38
点赞 关注
 
 

回复
举报

6069

帖子

4

TA的资源

版主

沙发
 
谢谢分享!

点评

感谢支持!!!  详情 回复 发表于 2020-8-12 16:24
 
 
 

回复

1460

帖子

1

TA的资源

五彩晶圆(初级)

板凳
 

感谢支持!!!

 
 
 

回复

1万

帖子

2854

TA的资源

管理员

4
 

谢谢楼主分享!赞!!

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身

点评

感谢鼓励!!!  详情 回复 发表于 2020-8-12 16:39
个人签名

玩板看这里:

https://bbs.eeworld.com.cn/elecplay.html

EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!

 
 
 

回复

1460

帖子

1

TA的资源

五彩晶圆(初级)

5
 
okhxyyo 发表于 2020-8-12 16:34 谢谢楼主分享!赞!!

感谢鼓励!!!

 
 
 

回复

1229

帖子

0

TA的资源

纯净的硅(初级)

6
 

谢谢楼主分享! 还可以用在机器人上把

点评

看用途吧,应该可以。  详情 回复 发表于 2020-8-14 08:32
个人签名多面手工程师
 
 
 

回复

1460

帖子

1

TA的资源

五彩晶圆(初级)

7
 
maoshen 发表于 2020-8-13 11:38 谢谢楼主分享! 还可以用在机器人上把

看用途吧,应该可以。

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表