打印
[DemoCode下载]

MG51使用IO触发ADC功能

[复制链接]
541|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huahuagg|  楼主 | 2023-12-16 17:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*---------------------------------------------------------------------------------------------------------*/
/*                                                                                                         */
/* SPDX-License-Identifier: Apache-2.0                                                                     */
/* Copyright(c) 2023 Nuvoton Technology Corp. All rights reserved.                                         */
/*                                                                                                         */
/*---------------------------------------------------------------------------------------------------------*/


//***********************************************************************************************************
//  File Function: MG51 ADC trig by GPIO demo
//***********************************************************************************************************
#include "MG51.H"

BIT  adcintflag=0;
/******************************************************************************
* FUNCTION_PURPOSE: ADC interrupt Service Routine
******************************************************************************/
void ADC_ISR (void) interrupt 11
{
    _push_(SFRS);
  
    clr_ADCCON0_ADCF;                               //clear ADC interrupt flag
    adcintflag=1;

    _pop_(SFRS);
}

/******************************************************************************
The main C function.  Program execution starts
here after stack initialization.
******************************************************************************/
void main (void)
{
    UINT16 ADCResult12bit;

  /* UART0 settting for printf function */
    MODIFY_HIRC(HIRC_24);
    Enable_UART0_VCOM_printf_24M_115200();
    printf ("\n Test start ...");

/*---------------------------------------------------------------
  ADC port trig initial setting toggle P0.4 to start ADC
----------------------------------------------------------------*/
    ENABLE_ADC_AIN0;                              // Enable AIN0 P1.7 as ADC pin
    P04_QUASI_MODE;
    P04_FALLINGEDGE_TRIG_ADC;                     // P0.4 falling edge as adc start trig signal
/* Enable ADC interrupt */
    ENABLE_ADC_INTERRUPT;                         // Enable ADC interrupt (if use interrupt)
    ENABLE_GLOBAL_INTERRUPT;
/* Trig P12 falling edge to start adc, no need set ADCS bit   */
    while(1)                                      // Wait ADC interrupt
    {
      if (adcintflag)
      {
            ADCResult12bit = ADCRH<<4;
            ADCResult12bit|= ADCRL&0x0F;
            printf ("\n Value = 0x%x",ADCResult12bit);
            adcintflag =0;
      }
      Timer0_Delay(24000000,500,1000);
    }


}




使用特权

评论回复
沙发
tpgf| | 2024-1-2 14:11 | 只看该作者
使用中断触发特定的定时器模式是吗

使用特权

评论回复
板凳
nawu| | 2024-1-2 14:41 | 只看该作者
为什么代码中要使用轮询模式呢

使用特权

评论回复
地板
gwsan| | 2024-1-2 15:33 | 只看该作者
这个应该不叫触发 应该叫做定时器延时啊  

使用特权

评论回复
5
tfqi| | 2024-1-2 16:15 | 只看该作者
这样做是不是太浪费芯片资源了啊

使用特权

评论回复
6
zljiu| | 2024-1-2 23:04 | 只看该作者
这个io的触发以及adc的采集之间是不是需要一定的配合呢

使用特权

评论回复
7
aoyi| | 2024-1-2 23:36 | 只看该作者
触发时配置的两句的作用是什么呢

使用特权

评论回复
8
AloneKaven| | 2024-1-10 09:15 | 只看该作者
io触发ADC怎么用的轮询啊

使用特权

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

本版积分规则

142

主题

1264

帖子

2

粉丝