[DemoCode下载] ML51的PDMA_MemoryToMemory

[复制链接]
59|7
 楼主 | 2019-8-27 22:32 | 显示全部楼层 |阅读模式
  1. /*---------------------------------------------------------------------------------------------------------*/
  2. /*                                                                                                         */
  3. /* Copyright(c) 2019 Nuvoton Technology Corp. All rights reserved.                                         */
  4. /*                                                                                                         */
  5. /*---------------------------------------------------------------------------------------------------------*/

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

  10. #include "ML51.h"

  11. /**
  12. * [url=home.php?mod=space&uid=247401]@brief[/url]              I2C0 master demo.
  13. * @param       None
  14. * [url=home.php?mod=space&uid=266161]@return[/url]      None
  15. * [url=home.php?mod=space&uid=1543424]@Details[/url]     please confirm enable LXT and check work stable if use LXT as WKT clock source.
  16. */

  17. unsigned char xdata RxDatabuffer[100] _at_ 0x100;
  18. unsigned char xdata finalbuffer _at_ 0x263;
  19. unsigned char i;

  20. void PDMA1_ISR(void) interrupt 21                            // Vector [url=home.php?mod=space&uid=72445]@[/url]  0xAB
  21. {
  22.         PDMA_Close(PDMA1);
  23.         clr_DMA1TSR_FDONE;
  24.         clr_DMA1TSR_HDONE;
  25.         printf (" \n PDMA Tranfer Finish! 0x%bx", finalbuffer);
  26. }

  27. void main (void)
  28. {
  29.                 MFP_P31_UART0_TXD;
  30.                 P31_QUASI_MODE;
  31.                 UART_Open(24000000,UART0_Timer3,115200);
  32.                 ENABLE_UART0_PRINTF;
  33.        
  34.                 for(i=0;i<100;i++)
  35.                 {
  36.                         RxDatabuffer[i]=i;
  37.                 }
  38. /* Define PMDA function as memory to memory, and setting base address */               
  39.                 PDMA_Open(PDMA1,XRAM_XRAM,0x100,0x80);
  40. /* Define destination memory address */               
  41.                 PDMA_MTM_DestinationAddress(PDMA1,0x200);
  42. /* Define interrupt after full transfer */               
  43.                 PDMA_Interrupt_Enable(PDMA1,PDMAFULLINT);
  44.                 ENABLE_GLOBAL_INTERRUPT;
  45.                 PDMA_Run(PDMA1);

  46.                 while(1);
  47. }



复制代码


使用特权

评论回复

相关资料

 楼主 | 2019-8-27 22:37 | 显示全部楼层
有没有发现,这套库函数,超级简单,设置好目的地址,设置好发送地址就行了。

使用特权

评论回复
 楼主 | 2019-8-27 22:37 | 显示全部楼层
也就是,从哪儿来,到哪儿去,就这么简单。

使用特权

评论回复
| 2019-8-27 23:26 | 显示全部楼层
内存到内存的应用,非常给力。

使用特权

评论回复
| 2019-8-27 23:28 | 显示全部楼层
unsigned char xdata RxDatabuffer[100] _at_ 0x100;
unsigned char xdata finalbuffer _at_ 0x263;
这个例子非常好。

使用特权

评论回复
| 2019-8-27 23:28 | 显示全部楼层
定位为外部的,还指定了地址。

使用特权

评论回复
| 2019-8-27 23:31 | 显示全部楼层
有点看不懂。

使用特权

评论回复
| 2019-8-27 23:40 | 显示全部楼层
需要看看头文件的介绍才好知道函数参数的意思。

使用特权

评论回复
扫描二维码,随时随地手机跟帖
*滑动验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

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