?? init ppi.c
字號(hào):
#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;");
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -