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

📄 init ppi.c

📁 基于visual dsp++开发环境
💻 C
字号:
#include "system.h"

/****************************************************************************************/
/***** InitPPI()																	*****/
/***** Configure PPI for GP input mode, and DMA channel zero for Writes to memory	*****/
/****************************************************************************************/
void InitPPI(void)
{
	
	// configure PPI

// for rev 0.1 and higher silicon
	// Infinite capture with self-start not supported in rev0
	// ADC wordlength, Polarity not inverted, no skipping, 32 bit DMA, no packing, input mode 1FS, infinite capture, PPI initiates transfer
//	*pPPI_CONTROL = DLEN(Number_of_ADC_bits) | DMA32 | PORT_CFG | XFR_TYPE | FLD_SEL;

// for rev 0.0 silicon
// 16-bit wordlength, Polarity not inverted, no skipping, 32 bit DMA, no packing, input mode 1FS, Frame capture, external pulse initiates transfer


// PPI setting for rev0.0 of silicon: self-triggered start not implemented
//	*pPPI_CONTROL = 0x3800 | DMA32 | PORT_CFG | XFR_TYPE;

// PPI setting for rev0.1 and higher  of silicon: self-triggered start mode
	*pPPI_CONTROL = 0x3800 | DMA32 | FLD_SEL | PORT_CFG | XFR_TYPE;

	*pPPI_DELAY   = 0x0000;
	*pPPI_COUNT   = Number_of_ADC_channels * Number_of_Samples;
	*pPPI_FRAME   = Number_of_ADC_channels * Number_of_Samples;


	// configure PPI DMA ( channel 0)
	*pDMA0_CONFIG = FLOW | 0x0400 | DI_EN | WDSIZE_16 | WNR;			// disable DMA transfer and enable large descriptor mode 1d mode (word size = 16bit)
	*pDMA0_NEXT_DESC_PTR = (&DMA_RX_first);
	*pDMA0_X_MODIFY = Number_of_ADC_channels * Word_Size;
	*pDMA0_X_COUNT = Number_of_Samples;

	*pDMA0_CONFIG = *pDMA0_CONFIG | DMAEN;	// enable DMA  (PPI not enabled yet)
	asm("ssync;");

	*pPPI_CONTROL |= PORT_EN;				// enable PPI
	asm("ssync;");

}

⌨️ 快捷键说明

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