5773|0

280

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

【 XMC4800 Relax EtherCAT Kit测评】+上手DAVE,ADC模块简单应用 [复制链接]

本帖最后由 flyword 于 2019-1-27 18:46 编辑

今天继续分享xmc4800ADC学习应用,还是使用的DAVE APP,使用过程也非常简单,使用DAVE这个软件好多次了,对于APP模块的应用,我总结大概一般都分为3个步骤,有的可能会更少一点。娜三个步骤呢?
一、             APP模块的添加以及配置。这里面配置的内容主要包括一些配置参数、中断设置、以及工作状态,例如是否在初始化后就工作等等,目前应用过的APP主要有TIMER,UART,ADC,具体来说配置都是与应用相关的,配置很简单。
二、             HW 信号连接。这里主要是涉及到信号的连接,可以把事件和中断信号连接起来,如之前将timer中的定时事件和软中断连接起来的。
三、             引脚配置。将具体应用的引脚配置到xmc4800芯片上。可以图示配置也可以菜单配置。
综上所述,使用APP模块,始终离不开这3个步骤,熟悉各个APP模块,可以加快你的产品谁应用。
好了,继续今天的分享,如何使用ADC模块。按照上面的步骤,新建DAVE CE工程以后,添加两个模块ADCUART模块。这次简单应用是ADC模块获得数据后通过串口打印出来。相关的UART使用在这里不再描述了,可以参考之前的帖子。这里重点说说ADC的应用和配置。
1.      添加相关的ADC模块。这里有2个跟ADC相关的模块,选择第1个即可。
2.      配置ADC模块。采用无触发信号,使能连续转换模式,在分辨率方面选择8位的测量模式,这里一般有8bit 10bit 12bit三种模式。
3.设置相关的中断配置需求。在测量结束后产生中中断,中断函数名可以自己定义。
4.      引脚配置。这里选择14.0.
5.      图纸里面对于ADC的定义标记有点问题,具体如下图,这里不影响使用,因为我们测试的引脚都未连接,测量值应该很小很小。
6.      点击产生代码,后对main函数进行修改。具体参考代码如下:
  1. /*
  2. * main.c
  3. #include <DAVE.h>                 //Declarations from DAVE Code Generation (includes SFR declaration)

  4. /**

  5. * [url=home.php?mod=space&uid=159083]@brief[/url] main() - Application entry point
  6. *
  7. * <b>Details of function</b><br>
  8. * This routine is the application entry point. It is invoked by the device startup code. It is responsible for
  9. * invoking the APP initialization dispatcher routine - DAVE_Init() and hosting the place-holder for user application
  10. * code.
  11. */

  12. XMC_VADC_RESULT_SIZE_t result;

  13. uint8_t value[10];

  14. void Adc_Measurement_Handler()

  15. {
  16. #if(UC_SERIES != XMC11)
  17.    
  18. result = ADC_MEASUREMENT_GetResult(&ADC_MEASUREMENT_Channel_A);
  19.          
  20. //result=4096;

  21. #else
  22.      
  23. result = ADC_MEASUREMENT_GetGlobalResult();

  24. #endif
  25.      
  26. sprintf(value,"%d",result);
  27.      
  28. UART_Transmit(&UART_0,"value:",6);
  29.      
  30. UART_Transmit(&UART_0, value, sizeof(value));
  31.      
  32. UART_Transmit(&UART_0,"\r\n",2);
  33. }


  34. int main(void)
  35. {
  36.   DAVE_STATUS_t status;

  37.   status = DAVE_Init();           /* Initialization of DAVE APPs  */

  38.   if(status != DAVE_STATUS_SUCCESS)
  39.   {
  40.     /* Placeholder for error handler code. The while loop below can be replaced with an user error handler. */
  41.     XMC_DEBUG("DAVE APPs initialization failed\n");

  42.     while(1U)
  43.     {

  44.     }
  45.   }
  46.   ADC_MEASUREMENT_StartConversion(&ADC_MEASUREMENT_0);
  47.   /* Placeholder for user application code. The while loop below can be replaced with user application code. */
  48.   while(1U)
  49.   {

  50.   }
  51. }
复制代码


7.      编译后运行,putty设置好后,可以看到ADC测量的结果:因为没有电压输入,所以测量的值应该很小,这里测出来的值8、6、7、14等可能是干扰噪声。
好了今天的分享到此,明天计划分享DAC模块的简单应用。
之所以试用ADC模块,也是为了在后面EtherCAT从站设计中,加入模拟量的测量,简单实现数字量和模拟量都能操作的从站。


此内容由EEWORLD论坛网友flyword原创,如需转载或用于商业用途需征得作者同意并注明出处



此帖出自工控电子论坛
点赞 关注(2)
 

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

随便看看
查找数据手册?

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
快速回复 返回顶部 返回列表