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

📄 isr_config.c

📁 BF533的视频采集程序
💻 C
字号:
/******************************************************************************/
//
// Name: 	BF533 EZ-KIT Interrupt Setup
//
/******************************************************************************

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

File Name:	ISR_Config.c

Date Modified:	10/25/04		TL		Rev 0.2

Software:       VisualDSP++3.1

Hardware:		ADSP-BF533 EZ-KIT Board

Special Connections:  None

Purpose:		The file sets up all interrupts required 
				
				

*********************************************************************************/


#include <cdefBF533.h>
#include <sys\exception.h>		//Interrupt Handling Header
#include <stdio.h>
extern unsigned char * pImage656_start;
extern unsigned char * pImage656_0;
extern unsigned char * pImage656_1;
extern unsigned int n;
extern unsigned int N;
extern unsigned char * pImage656_start;
extern void IMAGE656TOYUV(unsigned char * p_s);
void SelectAVN(unsigned char Num);

EX_INTERRUPT_HANDLER(DMA0_PPI_ISR)	// <--|declaration in  exception.h -->
{									//    |declaration with _pragma(interrupt) the ISR Startaddress 

	
	//disable the interrupt request
	*pDMA0_IRQ_STATUS = 0x1;
	*pPPI_CONTROL = 0x0;
	if (pImage656_start == pImage656_0)
	{   
		*pDMA0_START_ADDR = pImage656_1;
	//	pImage656_start = pImage656_1;
	}
	else
	{
	    *pDMA0_START_ADDR = pImage656_0;
	//	pImage656_start = pImage656_0;
	}
	
	if(n<N)
	{
		*pDMA0_CONFIG = DMAEN | DI_EN | WNR | WDSIZE_16| DMA2D | RESTART;
   		*pPPI_CONTROL = PORT_EN | FLD_SEL | PACK_EN | DLEN_8 ;
   		
   	    IMAGE656TOYUV(pImage656_start);
   		if (pImage656_start == pImage656_0) pImage656_start = pImage656_1;
   		else pImage656_start = pImage656_0;
   		*pDMA0_IRQ_STATUS = 0x0;
   		if(n==1) SelectAVN(4);
   		else if(!((n-1)%3))
   		{
   			if(!((n-1)%6))
   			SelectAVN(4);
   			else SelectAVN(1);
   		}
   		
   		
   		printf("the %d frame is dumped successfully\n",n++);
	}	
    
	printf( "\nThe DMA0 PPI Interrupt has been entered!\n" );

}//end DMA0_PPI_ISR


void Init_Interrupts(void)
{

	// configure interrupt
	*pSIC_IAR0 = *pSIC_IAR0 & 0xffffffff | 0x00000000;	
	*pSIC_IAR1 = *pSIC_IAR1 & 0xffffffff | 0x00000001;	// map DMA0 PPI Interrupt -> IVG8
	*pSIC_IAR2 = *pSIC_IAR2 & 0xffffffff | 0x00000000;	
														
	
	register_handler(ik_ivg8, DMA0_PPI_ISR);			// assign DMA0 PPI ISR to interrupt vector 8

	
	*pSIC_IMASK=0x00000100; // all interrupts 0=disabled but DMA0 PPI interrupt enabled	
		

}//end Init_Interrupts


⌨️ 快捷键说明

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