打印
[DemoCode下载]

ML的低功耗模式下使用PDMA

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

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

//***********************************************************************************************************
//  File Function: ML51 simple GPIO toggle out demo code
//***********************************************************************************************************

#include "ML51.h"


/**
* [url=home.php?mod=space&uid=247401]@brief[/url]       Low power run mode Memory to memory function demo
* @param       None
* [url=home.php?mod=space&uid=266161]@return[/url]      None
* [url=home.php?mod=space&uid=1543424]@Details[/url]     
*/

unsigned char xdata RxDatabuffer[100] _at_ 0x100;
unsigned char xdata finalbuffer _at_ 0x263;
unsigned char i;

void PDMA1_ISR(void) interrupt 21          // Vector [url=home.php?mod=space&uid=72445]@[/url]  0xAB
{
  PDMA_Close(PDMA1);
  clr_DMA1TSR_FDONE;
  clr_DMA1TSR_HDONE;
}

void main (void)
{
    ALL_GPIO_QUASI_MODE;

    for(i=0;i<100;i++)
    {
      RxDatabuffer[i]=i;
    }
/* Define PMDA function as memory to memory, and setting base address */   
    PDMA_Open(PDMA1,XRAM_XRAM,0x100,0x80);
/* Define destination memory address */   
    PDMA_MTM_DestinationAddress(PDMA1,0x200);
/* Define interrupt after full transfer */   
    PDMA_Interrupt_Enable(PDMA1,PDMAFULLINT);
    ENABLE_GLOBAL_INTERRUPT;
   
    FsysSelect(FSYS_LIRC);
    set_PCON_LPR;
    PDMA_Run(PDMA1);

    while(1);
}





使用特权

评论回复
沙发
734774645|  楼主 | 2020-5-31 22:02 | 只看该作者
/*---------------------------------------------------------------------------------------------------------*/
/*                                                                                                         */
/* Copyright(c) 2019 Nuvoton Technology Corp. All rights reserved.                                         */
/*                                                                                                         */
/*---------------------------------------------------------------------------------------------------------*/

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

//***********************************************************************************************************
//  File Function: ML51 simple GPIO toggle out demo code
//***********************************************************************************************************

#include "ML51.h"

    unsigned char xdata RxDatabuffer[100] _at_ 0x100;
    unsigned char ct;
/**
* @brief       Low power run mode UART TX or receive demo
* @param       None
* @return      None
* @details     
*/

void PDMA0_ISR(void) interrupt 20          // Vector @  0xA3
{  
/* if need check with XRAM PDMA value, should enable following part */
//  clr_PCON_LPR;
//  FsysSelect(FSYS_HIRC);
/* ******************** */
  PDMA_Close(PDMA0);
  SFRS=0;DMA0TSR=0;
/*only for check PDMA reciverd */
//  while(1)
//  {
//    P14=0;
//    P14=1;
//  }
//  printf (" \n PDMA receiv UART2 RX finish! " );
/* ****** */
}
   
   
void main (void)
{

#if 1  
    MFP_P46_CLKO;
    P46_QUASI_MODE;
    set_CKCON_CLOEN;
  
    MFP_P54_UART2_TXD;
    P54_QUASI_MODE;
    LowPower_LIRC_UART2_4800_init();
  
/*Enable Low power run mode */  
    FsysSelect(FSYS_LIRC);
    set_PCON_LPR;
  
    while(1)
    {
      LowPower_UART2_Send_Data(0x55);
      _delay_();
    }
#else
    All_GPIO_QUASI_MODE;
    MFP_P14_GPIO;
   
/* Enable UART2 RX */      
    MFP_P55_UART2_RXD;
    P55_INPUT_MODE;
    LowPower_LIRC_UART2_4800_init();
  
/* Clear XRAM base address area to 00h */
    for(ct=0;ct<10;ct++)
    {
      RxDatabuffer[ct]=0;
    }
/* Define PMDA function as UART RX to memory, define base address and PDMA receive length */   
    PDMA_Open(PDMA0,SMCRX,0x100,5);
/* Define interrupt after full transfer */
    PDMA_Interrupt_Enable(PDMA0,PDMAFULLINT);
/* Global interrupt enable */
    ENABLE_GLOBAL_INTERRUPT;
/* Start PDMA transfer */
    PDMA_Run(PDMA0);
   
/*Enable Low power run mode */  
    FsysSelect(FSYS_LIRC);
    set_PCON_LPR;
  
    while(1);
#endif   

}



使用特权

评论回复
板凳
734774645|  楼主 | 2020-5-31 22:03 | 只看该作者
ML51 run in low power run mode with enable PDMA function to execute memory to memory function

使用特权

评论回复
地板
734774645|  楼主 | 2020-5-31 22:03 | 只看该作者
ML51 run in low power run mode and enable UART2 receive data storage in XRAM with PDMA enable.

使用特权

评论回复
5
598330983| | 2020-5-31 22:04 | 只看该作者
例子不错,学习学习。

使用特权

评论回复
6
zhuotuzi| | 2020-5-31 22:47 | 只看该作者
还用到了中断

使用特权

评论回复
7
gejigeji521| | 2020-5-31 23:36 | 只看该作者
支持的运行方式挺多的

使用特权

评论回复
8
xuanhuanzi| | 2020-6-2 23:32 | 只看该作者
没看太明白,怎么移动位置的

使用特权

评论回复
9
gejigeji521| | 2020-6-3 20:52 | 只看该作者
我也有楼上的疑问。

使用特权

评论回复
10
antusheng| | 2020-6-4 21:18 | 只看该作者
我猜就是中断下实现。中断会唤醒低功耗。

使用特权

评论回复
11
antusheng| | 2020-6-6 08:58 | 只看该作者
体验了一下,这个低功耗真棒。

使用特权

评论回复
12
heimaojingzhang| | 2020-6-6 14:41 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
13
keaibukelian| | 2020-6-6 14:42 | 只看该作者
新唐的芯片好强大

使用特权

评论回复
14
labasi| | 2020-6-6 14:42 | 只看该作者
确实非常不错

使用特权

评论回复
15
paotangsan| | 2020-6-6 14:42 | 只看该作者
想块块的试试去

使用特权

评论回复
16
renzheshengui| | 2020-6-6 14:43 | 只看该作者
楼主辛苦了

使用特权

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

本版积分规则

185

主题

3408

帖子

14

粉丝