打印
[DemoCode下载]

ML51测量供电点电压,这个例子很科学

[复制链接]
610|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gejigeji521|  楼主 | 2020-6-28 20:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*---------------------------------------------------------------------------------------------------------*/
/*                                                                                                         */
/* Copyright(c) 2019 Nuvoton Technology Corp. All rights reserved.                                         */
/*                                                                                                         */
/*---------------------------------------------------------------------------------------------------------*/

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

//***********************************************************************************************************
//  File Function: ML51 series use bandgap result to calculate VDD demo code
//***********************************************************************************************************

#include "ML51.h"


double  VDD_Voltage,Bandgap_Voltage;             /*please always use "double" mode for this */
unsigned char xdata ADCdataH[5], ADCdataL[5];
unsigned int ADCsumH=0, ADCsumL=0;
   
/******************************************************************************
The main C function.  Program execution starts
here after stack initialization.
******************************************************************************/
void main (void)
{

    unsigned int  ADC_BG_Result;
  
    MFP_P31_UART0_TXD;                                /* UART0 define @P0.5 & P0.6 multi function setting */
    P31_QUASI_MODE;
    UART_Open(24000000,UART0_Timer3,115200);            /* set UART0 output, baudrate 115200 generate by timer1 */
    ENABLE_UART0_PRINTF;;
  
/* ADC bandgap initial
  * include adc.c in Library for initial setting
*/
    ADC_Open(ADC_SINGLE,VBG);  
/* For the best result wait 10us delay for each sampling, ADCDIV=3, ADCAQT=7 is better */
    ADC_ConvertTime(3,7);                             
//    ADC_Calibration();

    while (1)
    {
        clr_ADCCON0_ADCF;
        set_ADCCON0_ADCS;
        while(!(ADCCON0&SET_BIT7));
        ADC_BG_Result = (ADCRH<<4) + ADCRL;
        printf ("\n ADC_BG_Result = 0x%02X",ADC_BG_Result);
        
/***************************************************************************************/
/*                  VDD  Now                         READ_BANDGAP() VALUE
/*    ------------------------------------- = ----------------------------------
/*    3072mV(Storage value test condition)      NOW ADC Bandgap convert reuslt
/***************************************************************************************/
        VDD_Voltage = ((float)READ_BANDGAP()/(float)ADC_BG_Result)*3.072;
        printf ("\n VDD_Voltage = %e",VDD_Voltage);

                        /***************************************************************************************/
/*            Bandgap real voltage                    READ_BANDGAP() VALUE
/*    ------------------------------------- = ----------------------------------
/*    3072mV(Storage value test condition)              4096(12bit ADC)
/***************************************************************************************/
        Bandgap_Voltage = ((float)READ_BANDGAP()*3/4/1000);
        printf ("\n Bandgap_Voltage = %e", Bandgap_Voltage);

        ADCsumH = 0;
        ADCsumL = 0;
        printf ("\n " );
        printf ("\n " );
    }

}




使用特权

评论回复
沙发
gejigeji521|  楼主 | 2020-6-28 20:12 | 只看该作者
看了论坛坛友发的一个贴,看了这个例子,发现很科学。

使用特权

评论回复
板凳
稳稳の幸福| | 2020-6-28 23:13 | 只看该作者
这个注释的很详细

使用特权

评论回复
地板
小灵通2018| | 2020-6-28 23:48 | 只看该作者
不推敲你不知道四分之三怎么来的。

使用特权

评论回复
5
dongnanxibei| | 2020-6-29 11:54 | 只看该作者
3072÷3=1024
1024×4=4096
所以3072/4096=3/4

使用特权

评论回复
6
SteveDing| | 2020-7-9 11:42 | 只看该作者
这种帖子,遇到就是赚到,学习了

使用特权

评论回复
7
稳稳の幸福| | 2020-7-9 17:26 | 只看该作者
测量电池,或者供电电压就可以这么做。

使用特权

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

本版积分规则

163

主题

2132

帖子

8

粉丝