3521|2

125

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【SAM D21 Xplained Pro 试用】03 利用ASF实现ADC采集 [复制链接]

今天知道了,这个solution呢和其他的工作空间概念相似,是多个project的集合。因此今天就在上次的solution D21 test下开始,先打开solution。添加一个新的project,这个过程和上次的一样就不多说了,主要区别就是add to solution

然后set as start up,就应该是默认的项目了吧,没找到其他可能的选项。按照板子出来的呢,就还是这个按键控制LED。我们来熟悉一下文档结构。大概有库函数和源代码两部分。lib比较少,就一个math和libm,估计暂时用不到。

src里面有ASF、config和main.c组成。board.h是对各种板子的定义,而D21这个板子的各种资源在samd21_xplained_pro.h中定义,然后在board_init.c中实现板子的初始化。初始化代码很简单,就是设定LED为输出,button为输入。其中对IO操作时还调用port.h和port.c中的函数

下面尝试添加ADC的驱动。使用alt+W启动asf,按add添加的查询方式的adc api,

跳出警告,同意即可

添加完以后,字体会从斜体变成正常。添加后还可以继续选poll还是callback

可是怎么玩呢?进入asf explore,找到adc的quick start guide,可惜都是联网去网站上看的英文。

还好流程是比较清楚的,先按官方流程来copy吧(http://asf.atmel.com/docs/3.17.0 ... basic_use_case.html)。基本是选用的默认配置,上电测量一次。入口是Positive input on ADC PIN 0。应该是AIN0吧,查了查,是ext3的PA02。

给PA02上VCC,应该出来12bit的最大值。然后debug,结果 optimized out,查了下,应该是编译优化的原因。改称O0就好了,出来4095咯。

然后把代码搬运到while里面,每次按键测一个adc,因为使用1v作为ref,所以1v以上全部是4095,测试了1v以下,默认的还是有些误差的。看图。当然可以根据测量的结果,从ad到实际电压做一个比例变化,比如不是乘以100,而已980,那么最后结果还是比较准的。


这么一遍流程下来,觉得as也算好用啊,哈哈。最后上一张连接的硬件图。

最后是代码包,为啥那么大呢??压缩前14M

adctest.zip

3.54 MB, 下载次数: 91

此帖出自单片机论坛

最新回复

good  详情 回复 发表于 2015-10-30 14:52
点赞 关注
 

回复
举报

79

帖子

1

TA的资源

一粒金砂(中级)

沙发
 
好帖 顶一下
此帖出自单片机论坛
 
 

回复

7

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
good
此帖出自单片机论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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