📄 dma.c
字号:
#ifndef DMA_C
#define DMA_C
#include "Dma.h"
#include "2410addr.h"
#include "Def.h"
#include "Lcd_Test.h"
//int dmaDone;
static void __irq Dma0Done(void)
{
//ClearPending(BIT_DMA0);
rSRCPND|=(1<<17);
rINTPND|=(1<<17);
//dmaDone=1;
}
void Dma(void)
{
pISR_DMA0 = (int)Dma0Done;
rINTMSK&=0xfffdffff;
rDISRC0=(int)Buffer;
rDISRCC0=0<<1|0;//AHP increased
rDIDST0=(int)Frame_Buffer;
rDIDSTC0=0<<1|0;//AHP increased
rDCON0=1<<31|1<<30|0<<29|1<<28|1<<27|0<<23|1<<22|1<<20|(96000);
// rDCON0 = (1<<31)|(1<<30)|(1<<29)|(1<<28)|(1<<27)|(0<<23)|(1<<22)|(2<<20)|(96000);
//handshake AHB clock interrupt disabled burst whole service nXDREQ0 H/W request mode reload off half word TC
rDMASKTRIG0 = (1<<1)|1; //DMA on, SW_TRIG
// rDMASKTRIG0 = (1<<1)|1;
rINTMSK|=0x00020000;
}
/*
void Dma()
{
pISR_DMA0 = (int)Dma0Done;
//INTMSK INT_DMA0 [17] = 0 : Service available
rINTMSK = ~(BIT_DMA0);
dmaDone=0;
//Draw_rectangle(0x00,0x00,0x50,0x50);
rDISRC0 =(U32)Buffer;//[0][0];
rDISRCC0 = (0<<1)|(0<<0); // inc,AHB
rDIDST0 =(U32)Frame_Buffer;//[0][0];
rDIDSTC0 = (0<<1)|(0<<0); // inc,AHB
rDCON0 = (1<<31)|(1<<30)|(0<<29)|(1<<28)|(1<<27)|
(0<<23)|(1<<22)|(1<<20)|(96000);
//HS,AHB,TC interrupt,whole, SW request mode,relaod off
rDMASKTRIG0 = (1<<1)|1; //DMA on, SW_TRIG
rINTMSK = BIT_ALLMSK;
}
*/
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -