DMA.c 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #define __DMA_DEF
  2. #include "ABIS_User.h"
  3. void InitDMA(void)
  4. {
  5. //set the DMA1 to UART1 trans to PC
  6. // g_ucUart1_Send_Data[0]=FRAME_HEAD;
  7. DMA3CON=0X6001;
  8. DMA3CNT=SHORT_DATA;
  9. DMA3REQ=0x0c;
  10. DMA3PAD=(volatile unsigned int)&U1TXREG;
  11. DMA3STAH=__builtin_dmapage(g_ucU1TX_Data);
  12. DMA3STAL=__builtin_dmaoffset(g_ucU1TX_Data);
  13. IFS2bits.DMA3IF = 0;
  14. IEC2bits.DMA3IE = 0;
  15. DMA3CONbits.CHEN= 0;
  16. IPC9bits. DMA3IP= 1;
  17. IFS2bits.DMA3IF = 1;
  18. //DMACS0 =0;
  19. DMA1CON=0X6001;
  20. DMA1CNT=LONG_DATA;
  21. DMA1REQ=0x0c;
  22. DMA1PAD=(volatile unsigned int)&U1TXREG;
  23. DMA1STAH=__builtin_dmapage(ucBuffer_Data);
  24. DMA1STAL=__builtin_dmaoffset(ucBuffer_Data);
  25. IFS0bits.DMA1IF = 0;//中断标识清零
  26. IPC3bits.DMA1IP = 7;
  27. IEC0bits.DMA1IE = 0;//中断使能
  28. DMA1CONbits.CHEN= 0;//启动
  29. IFS0bits.DMA1IF = 1;
  30. DMA2CON=0X6001;
  31. DMA2CNT=SHORT_DATA;
  32. DMA2REQ=0x53;
  33. DMA2PAD=(volatile unsigned int)&U3TXREG;
  34. DMA2STAH=__builtin_dmapage(g_ucU3TX_Data);
  35. DMA2STAL=__builtin_dmaoffset(g_ucU3TX_Data);
  36. IFS1bits.DMA2IF = 0;
  37. IEC1bits.DMA2IE = 0;
  38. DMA2CONbits.CHEN= 0;
  39. IPC6bits. DMA2IP= 1;
  40. IFS1bits.DMA2IF = 1;
  41. }
  42. ///*******************************************************************************
  43. // * 函数名称:InitDma0
  44. // *******************************************************************************/
  45. //void InitDma0(void)
  46. //{
  47. //// DMA0CONbits.AMODE = 2;
  48. // DMA0CONbits.AMODE = 0;
  49. // DMA0CONbits.MODE = 2;
  50. // DMA0PAD=(int)&ADC1BUF0;
  51. // DMA0CNT = 15;//
  52. // DMA0REQ = 13;
  53. //
  54. // DMA0STAH = __builtin_dmaoffset(&BufferA);
  55. // DMA0STAL = __builtin_dmaoffset(&BufferA);
  56. //
  57. // DMA0STBH = __builtin_dmaoffset(&BufferB);
  58. // DMA0STBL = __builtin_dmaoffset(&BufferB);
  59. //
  60. // IFS0bits.DMA0IF = 0;
  61. // IPC3bits.DMA1IP = 6;
  62. // IEC0bits.DMA0IE = 1;
  63. // DMA0CONbits.CHEN= 1;
  64. //}