打印
[技术问答]

ML51 ADC采集问题通道P2.0

[复制链接]
591|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
weishengdianqi|  楼主 | 2020-5-8 10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 weishengdianqi 于 2020-5-8 10:02 编辑

大家好,ADC P2.0对地短接就变成0,其它时间ADC采集到的ADC值一直是2048,我是用官网提供的历程
/*---------------------------------------------------------------------------------------------------------*/
/*                                                                                                         */
/* Copyright(c) 2019 Nuvoton Technology Corp. All rights reserved.                                         */
/*                                                                                                         */
/*---------------------------------------------------------------------------------------------------------*/

//***********************************************************************************************************
//  Website: http://www.nuvoton.com
//  E-Mail : MicroC-8bit@nuvoton.com
//***********************************************************************************************************

//***********************************************************************************************************
//  File Function: ML51 series ADC software trigger on shot demo code
//***********************************************************************************************************
#include "ML51.h"
unsigned int ADCRESULT;
/******************************************************************************
* FUNCTION_PURPOSE: ADC interrupt Service Routine
******************************************************************************/
void ADC_ISR (void) interrupt 11
{
    clr_ADCCON0_ADCF;                               //clear ADC interrupt flag
                printf ("ADCRH = 0x%BX  ",ADCRH);                                                   //include uart.c before use printf function.
                printf ("ADCRL = 0x%BX \n ",ADCRL);                                                //include uart.c before use printf function.
}

/******************************************************************************
The main C function.  Program execution starts
here after stack initialization.
******************************************************************************/
void main ()
{
/*
For UART0 P0.5 TXD output setting
* include gipo.c in Library for GPIO mode setting
* include uart.c in Library Setting for UART0
*/
                MFP_P31_UART0_TXD;                                                                                                                        // UART0 TXD use P0.5
                P31_QUASI_MODE;                                                                           // set P0.5  as Quasi mode for UART0 trasnfer
                UART_Open(24000000,UART0_Timer3,115200);                                // Open UART0 use timer1 as baudrate generate and baud rate = 115200
                ENABLE_UART0_PRINTF;        
/*
        ADCS to trig ADC convert
        * include adc.c in Library for ADC initial setting
*/
                ADC_Open(ADC_SINGLE,5);                                                                                                                                                                //Enable ADC_CH4
                ADC_ConvertTime(2,7);
                ADC_Interrupt(Enable,ADC_INT_SINGLE);                                                                                                        //Enable ADC interrupt
                ENABLE_GLOBAL_INTERRUPT;                                                                                                                                                  // Enable global interrupt
/* find ADC result in ADC interrupt*/
                                                                                                                                                                                
                while(1)
                {
                                set_ADCCON0_ADCS;                                             // Software trig adc start
                                Timer0_Delay(24000000,100,1000);
                         ADCRESULT = (ADCRH<<4)+ADCRL;
                }
        
}//ADCRESULT这个值一直是2048



使用特权

评论回复
沙发
玛尼玛尼哄| | 2020-5-8 10:54 | 只看该作者
ADC P2.0对地短接就变成0,其它时间ADC采集到的ADC值一直是2048,我是用官网提供的历程??
其他时间是接哪儿了?

使用特权

评论回复
板凳
玛尼玛尼哄| | 2020-5-8 10:55 | 只看该作者
悬空了,ADC切记悬空。一般ADC接口都应该接一个固定的。如果是插孔类,应该未插入时候接地,插入后接外部检测点。

使用特权

评论回复
地板
weishengdianqi|  楼主 | 2020-5-8 11:38 | 只看该作者
玛尼玛尼哄 发表于 2020-5-8 10:54
ADC P2.0对地短接就变成0,其它时间ADC采集到的ADC值一直是2048,我是用官网提供的历程??
其他时间是接哪 ...

平时是通过2个采样电阻分压的,一直是有电压的,短接是我认为操作的

使用特权

评论回复
5
wanduzi| | 2020-5-8 21:29 | 只看该作者
万用表测过没,分压点是多少伏特,有没有超过Vref

使用特权

评论回复
6
weishengdianqi|  楼主 | 2020-5-9 10:52 | 只看该作者
wanduzi 发表于 2020-5-8 21:29
万用表测过没,分压点是多少伏特,有没有超过Vref

没有,最高1.8V

使用特权

评论回复
7
wahahaheihei| | 2020-5-10 20:18 | 只看该作者
试试官方的例子,别修改,看看有没有问题。

使用特权

评论回复
8
yiy| | 2020-5-10 23:53 | 只看该作者
没有这个芯片,用过003,挺好的

使用特权

评论回复
9
antusheng| | 2020-5-10 23:57 | 只看该作者
官方的例子有没有使用这个管脚的,是不是要在配置字设置什么

使用特权

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

本版积分规则

2

主题

9

帖子

0

粉丝