[DemoCode下载] MG51使用IO触发ADC功能

[复制链接]
925|7
 楼主| huahuagg 发表于 2023-12-16 17:52 | 显示全部楼层 |阅读模式
  1. /*---------------------------------------------------------------------------------------------------------*/
  2. /*                                                                                                         */
  3. /* SPDX-License-Identifier: Apache-2.0                                                                     */
  4. /* Copyright(c) 2023 Nuvoton Technology Corp. All rights reserved.                                         */
  5. /*                                                                                                         */
  6. /*---------------------------------------------------------------------------------------------------------*/


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

  11. BIT  adcintflag=0;
  12. /******************************************************************************
  13. * FUNCTION_PURPOSE: ADC interrupt Service Routine
  14. ******************************************************************************/
  15. void ADC_ISR (void) interrupt 11
  16. {
  17.     _push_(SFRS);
  18.   
  19.     clr_ADCCON0_ADCF;                               //clear ADC interrupt flag
  20.     adcintflag=1;

  21.     _pop_(SFRS);
  22. }

  23. /******************************************************************************
  24. The main C function.  Program execution starts
  25. here after stack initialization.
  26. ******************************************************************************/
  27. void main (void)
  28. {
  29.     UINT16 ADCResult12bit;

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

  34. /*---------------------------------------------------------------
  35.   ADC port trig initial setting toggle P0.4 to start ADC
  36. ----------------------------------------------------------------*/
  37.     ENABLE_ADC_AIN0;                              // Enable AIN0 P1.7 as ADC pin
  38.     P04_QUASI_MODE;
  39.     P04_FALLINGEDGE_TRIG_ADC;                     // P0.4 falling edge as adc start trig signal
  40. /* Enable ADC interrupt */
  41.     ENABLE_ADC_INTERRUPT;                         // Enable ADC interrupt (if use interrupt)
  42.     ENABLE_GLOBAL_INTERRUPT;
  43. /* Trig P12 falling edge to start adc, no need set ADCS bit   */
  44.     while(1)                                      // Wait ADC interrupt
  45.     {
  46.       if (adcintflag)
  47.       {
  48.             ADCResult12bit = ADCRH<<4;
  49.             ADCResult12bit|= ADCRL&0x0F;
  50.             printf ("\n Value = 0x%x",ADCResult12bit);
  51.             adcintflag =0;
  52.       }
  53.       Timer0_Delay(24000000,500,1000);
  54.     }


  55. }




tpgf 发表于 2024-1-2 14:11 | 显示全部楼层
使用中断触发特定的定时器模式是吗
nawu 发表于 2024-1-2 14:41 | 显示全部楼层
为什么代码中要使用轮询模式呢
gwsan 发表于 2024-1-2 15:33 | 显示全部楼层
这个应该不叫触发 应该叫做定时器延时啊  
tfqi 发表于 2024-1-2 16:15 | 显示全部楼层
这样做是不是太浪费芯片资源了啊
zljiu 发表于 2024-1-2 23:04 | 显示全部楼层
这个io的触发以及adc的采集之间是不是需要一定的配合呢
aoyi 发表于 2024-1-2 23:36 | 显示全部楼层
触发时配置的两句的作用是什么呢
AloneKaven 发表于 2024-1-10 09:15 来自手机 | 显示全部楼层
io触发ADC怎么用的轮询啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

159

主题

1430

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部