打印
[PIC®/AVR®/dsPIC®产品]

【CuriosityNano测评报告】+ AVR64DD32的ADC测试

[复制链接]
1176|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 gaoyang9992006 于 2022-11-16 17:29 编辑

首先搞清楚ADC通道映射到IO上的序列

比如我们使用PA2引脚,查看芯片手册,发现该引脚对应AIN22通道
新建工程,在MCC里启用如下外设功能,并配置PA2引脚为ADC0上的通道

如果不看手册,通过这里也可以查看到所在的通道

然后我们要用串口输出,串口开发板自带的使用了UART0

另外需要在IO配置里启用他们

如果ADC配置里选择了左对齐,应注意结果,如果想要保留所有数据,则需要右移4位即可,关闭这个功能,直接读即可


参考电压选择VDD即可。

之后我们生成代码,并进入main.c完成测量工作
#include "mcc_generated_files/system/system.h"
#include "mcc_generated_files/timer/../timer/delay.h"
/*
    Main application
*/

int main(void)
{
    SYSTEM_Initialize();


    while(1)
    {
        printf("Hello world !\n");
        DELAY_milliseconds(2000);
        printf("%d\n",ADC0_GetConversion(ADC_MUXPOS_AIN22_gc)>>4);//设置了左对齐,那么咱数据就右移回来
        DELAY_milliseconds(2000);
    }   
}
这里唯一不爽的是一定要使用头文件中的通道宏,如果能在MCC里就实现用户自定义的映射就好了,哈哈。
接下来用导线链接PA2到GND,和到VDD测试。

非常的好,接到GND就是0,接到VDD就是满刻度4095


使用特权

评论回复
沙发
geraldbetty| | 2023-7-12 17:41 | 只看该作者
提供了一个基本的ADC测试框架。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:西安公路研究院南京院
简介:主要工作从事监控网络与通信网络设计,以及从事基于嵌入式的通信与控制设备研发。擅长单片机嵌入式系统物联网设备开发,音频功放电路开发。

1896

主题

15629

帖子

198

粉丝