⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dma.c

📁 IARSOURCECODE是基于LPC2478嵌入式软件IAR EWARM V4.42的应用实例代码
💻 C
字号:
/*****************************************************************************
 *   dma.c:  DMA module file for NXP LPC23xx/24xx Family Microprocessors
 *
 *   Copyright(C) 2006, NXP Semiconductor
 *   All rights reserved.
 *
 *   History
 *   2006.07.20  ver 1.00    Prelimnary version, first Release
 *
******************************************************************************/
#include "LPC23xx.h"                        /* LPC23xx/24xx definitions */
#include "type.h"
#include "irq.h"
#include "dma.h"
#include "uart.h"

volatile DWORD DMATCCount = 0;
volatile DWORD DMAErrCount = 0;
volatile DWORD num_frms;
volatile DWORD x_pos, y_pos;
volatile BOOL  first_frm;
volatile DWORD DMA_SRC;


/******************************************************************************
** Function name:		DMAHandler
**
** Descriptions:		DMA interrupt handler
**
** parameters:			None
** Returned value:		None
** 
******************************************************************************/
__irq __arm void DMAHandler (void)  
{
  DWORD regVal;

  //IENABLE;				/* handles nested interrupt */
  regVal = LCD_INTSTAT;
  if ( (regVal&0x00000002) == 0x00000002 )  //FUFMIS
  {
	LCD_INTCLR |= 0x00000002;
  } 

  //LNBUIC
  if ( (regVal&0x00000004) == 0x00000004 ) 
  {
	LCD_INTCLR |= 0x00000004;
  } 
  //VCompMIS
  if ( (regVal&0x00000008) == 0x00000008 ) 
  {
	LCD_INTCLR |= 0x00000008;
  }
  //BERRAW
  if ( (regVal&0x00000010) == 0x00000010 ) 
  {
	LCD_INTCLR |= 0x00000010;
  }
  //IDISABLE;	 
  VICVectAddr = 0;		/* Acknowledge Interrupt */
}

/******************************************************************************
** Function name:		DMA_Init
**
** Descriptions:		
**
** parameters:			
** Returned value:		
** 
******************************************************************************/
DWORD DMA_Init( DWORD DMAMode )
{

  LCD_INTMSK |= (0x01 << 4)|(0x01 << 3)|(0x01 << 2)|(0x01 << 1);
   
  if ( DMAMode == M2M )
  {
  }
  else
  {
	return ( FALSE );
  }
			
  if ( install_irq( EINT2_INT, (void *)DMAHandler, HIGHEST_PRIORITY ) == FALSE )
  {
	return ( FALSE );
  }		 
  return (TRUE);
}

/******************************************************************************
**                            End Of File
******************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -