嵌入式作业6.2 ADC 编程

在ADC实验中,结合热敏电阻,分别通过触摸芯片表面和热敏电阻,引起A/D值变化,显示芯片内部温度和当前温度。#

程序代码#

//主函数
int main(void)
{
    uint16_t num_AD1;	
    uint16_t num_AD2;
    uint16_t num_AD3;
    uint32_t mMainLoopCount;  //主循环次数变量
    
    //关总中断
    DISABLE_INTERRUPTS;
    
    mMainLoopCount=0;    //主循环次数变量

    adc_init(ADC_CHANNEL_1,AD_DIFF);			    //初始化ADC通道1,
    adc_init(ADC_CHANNEL_15,AD_DIFF);			    //初始化ADC通道15
    adc_init(ADC_CHANNEL_TEMPSENSOR,AD_SINGLE);	//初始化ADC通道:内部温度
    
    ENABLE_INTERRUPTS;
    
    printf("------------------------------------------------------\n"); 
    printf("金葫芦提示:                                           \n"); 
    printf("(1)目的:ADC单端输入与差分输入测试                    \n"); 
    printf("(2)单端:内部温度传感器,通道号17,无需引脚对应        \n");
    printf("     差分:GEC引脚47、46(通道1、2)                  \n");
    printf("           GEC引脚12、11(通道15、16)                  \n");
    printf("(3)测试方法:单端:手摸芯片表面,A/D值增大,不要摸    \n");
    printf("                    到引脚,静电可能损坏芯片           \n");
    printf("              差分:将引脚47接地、46接3.3V,观察通道1情况\n");
    printf("                    将引脚46接地、47接3.3V,观察通道1情况\n");
    printf("             类似方法,观察通道15                      \n");
    printf("------------------------------------------------------\n"); 
    
    for(;;)
    {
    	//主循环次数变量+1
        mMainLoopCount++;
        //未达到主循环次数设定值,继续循环
        //延时1秒
        if (mMainLoopCount<=30000000)  continue;
        //达到主循环次数设定值,执行下列语句,进行灯的亮暗处理
        //清除循环次数变量
        mMainLoopCount=0;
        
        num_AD1 = adc_ave(ADC_CHANNEL_1,8);
        num_AD2 = adc_ave(ADC_CHANNEL_15,8);
        num_AD3 = adc_ave(ADC_CHANNEL_TEMPSENSOR,8);
        printf("通道1(GEC47、46)的A/D值: %d\r\n",num_AD1);
        printf("通道1(GEC47、46)的温度值: %f\r\n",Regression_Ext_Temp(num_AD1));
        printf("通道15(GEC12、11)的A/D值:%d\r\n",num_AD2);
        printf("通道15(GEC12、11)的温度值:%f\r\n",Regression_Ext_Temp(num_AD2));
        printf("内部温度传感器的A/D值:%d\r\n",num_AD3);
        printf("内部温度传感器的温度值:%f\r\n\n",Regression_MCU_Temp(num_AD3));
    }
}

运行效果#

使热敏电阻升温:

使 mcu 升温:

作者:YZXE

出处:https://www.cnblogs.com/YZXE/p/18244990

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   一只心耳  阅读(82)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示