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

📄 init_dma.c

📁 Using the ADSP-BF561 Blackfin Processor as a TFT-LCD Controller
💻 C
字号:
/*****************************************************************************
**																			**
**	 Project Name: 	LCD											**	
**																			**
******************************************************************************

(C) Copyright 2005 - Analog Devices, Inc.  All rights reserved.

File Name:		Init_DMA.c

Date Modified:	5/1/05		CL		Rev 1.0

Software:       VisualDSP++3.5

Hardware:		ADSP-BF561 EZ-KIT Lite

Special Connections:  None

Purpose:		This file initializes the DMA channel for Core B.
				
******************************************************************************/


#include "main.h"
#include "DescriptorDMA_PPI.h"

#define XCNT 120 
#define XMOD 4
#define YCNT 329
#define YMOD 4

volatile short config_word_b;

void Init_DMA(volatile short *descript_addr, volatile int *frame_addr){
	
	char i;
	short descript_size = DESCRIPTOR_SIZE;
	short descript_size_in_bytes;
	
	descript_size_in_bytes = descript_size * sizeof(short);
	descript_size <<= 8;
	config_word_b = descript_size|DMA_CONFIG;
	
	*pDMA1_1_X_COUNT = XCNT;	// 2 bytes for each pixel, count divided by four if 32-bit DMA transfers are done
	*pDMA1_1_X_MODIFY = XMOD;
	
	*pDMA1_1_Y_COUNT = YCNT;		
	*pDMA1_1_Y_MODIFY = YMOD;
	
	*pDMA1_1_CURR_DESC_PTR = descript_addr;
	ssync();	
	*pDMA1_1_NEXT_DESC_PTR = descript_addr;
	ssync();

	for(i=1; i<NUM_BUFFERS; i++){
		*descript_addr = (unsigned short) ((int)(descript_addr));
		*(descript_addr+1) = (unsigned short) ((int) (*frame_addr) & 0xffff);
		*(descript_addr+2) = (unsigned short) ((int) (*frame_addr) >> 16);
		*(descript_addr+3) = config_word_b;
		frame_addr += 1;
		descript_addr = descript_addr+DESCRIPTOR_SIZE;
	}

	*descript_addr = (unsigned short) ((int)(descript_addr));
	*(descript_addr+1) = (unsigned short) ((int) (*frame_addr) & 0xffff);
	*(descript_addr+2) = (unsigned short) ((int) (*frame_addr) >> 16);
	*(descript_addr+3) = config_word_b & 0xffff;
			
	config_word_b &= 0xfffe;
	*pDMA1_1_CONFIG = config_word_b;
	ssync();
	
}

⌨️ 快捷键说明

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