¥È¥Ã¥× º¹Ê¬ °ìÍ÷ ¥½¡¼¥¹ ¸¡º÷ ¥Ø¥ë¥× PDF RSS ¥í¥°¥¤¥ó

PSoC3 ADC¤«¤éDMA¤Ç¥Ç¡¼¥¿°ú¼è¤ê¤Ë¼ºÇÔ¤¹¤ë

[ÅŻҹ©ºî]

¸½¾Ý

  • PSoC3 FTK ¤ËÉÕ°¤Î¥µ¥ó¥×¥ë BubbleLevel ¥³¡¼¥É¤ò»²¹Í¤Ë ADC ¤«¤é¤Î°ú¤­¼è¤ê¤ò DMA->ISR(³ä¤ê¹þ¤ß) ·Ðͳ¤Ç¹Ô¤ª¤¦¤ÈÊѹ¹¤·¤Æ¤ß¤¿¤¬¡¢¤¦¤Þ¤¯Æ°ºî¤¹¤ë¤È¤­¤È¤·¤Ê¤¤¤È¤­¤¬¤¢¤Ã¤¿¡£

¡ãÊѹ¹¤·¤¿ ADC ¥Ö¥í¥Ã¥¯¿Þ¡ä

Âнè

¡¦Æ±¤¸ RAM¥¢¥É¥ì¥¹(²¼µ­¥µ¥ó¥×¥ë¤Ç¤Ï¥°¥í¡¼¥Ð¥ëÊÑ¿ôBubbleValueG)¤Ë¥ï¡¼¥ÉžÁ÷¤ò·«¤êÊÖ¤¹¾ì¹ç¤Ç¤â¡¢TD_INC_DST_ADR ¤¬É¬Íפʤ褦¤Ç¤¢¤ë¡£
¡¦¾åµ­¥ª¥×¥·¥ç¥ó¤ò¤Ä¤±¤Ê¤¯¤È¤â¡¢¤­¤Á¤ó¤È£²¥Ð¥¤¥ÈžÁ÷¤µ¤ì¤ë¡Ê°ì¸«Àµ¾ï¤Ë¸«¤¨¤ë¡Ë¤³¤È¤¬¤¢¤Ã¤¿¤Î¤Ç¡¢Ãí°Õ¤¬É¬Íס£

DMA Éô½é´ü²½¥³¡¼¥ÉÎã

/* Variable declarations for DMA_1 */
int16 BubbleValueG ;
uint8 DMA_1_Chan;
uint8 DMA_1_TD[1];

/* DMA Configuration for DMA_1 */
#define DMA_1_BYTES_PER_BURST 2
#define DMA_1_REQUEST_PER_BURST 1
#define DMA_1_SRC_BASE (CYDEV_PERIPH_BASE)
#define DMA_1_DST_BASE (CYDEV_SRAM_BASE)

void dma_init() 
{
	DMA_1_Chan =  DMA_1_DmaInitialize(DMA_1_BYTES_PER_BURST, DMA_1_REQUEST_PER_BURST, 
    	HI16(DMA_1_SRC_BASE), HI16(DMA_1_DST_BASE));
	DMA_1_TD[0] = CyDmaTdAllocate();
	CyDmaTdSetConfiguration(DMA_1_TD[0], 2, DMA_INVALID_TD, TD_SWAP_EN | TD_INC_DST_ADR | DMA_1__TD_TERMOUT_EN);
	CyDmaTdSetAddress(DMA_1_TD[0], LO16((uint32)ADC_DEC_SAMP_PTR), LO16((uint32)&BubbleValueG));
	CyDmaChSetInitialTd(DMA_1_Chan, DMA_1_TD[0]);
	CyDmaChEnable(DMA_1_Chan, 1);
}
BubbleLevel_DMA.gif

¡¡¥«¥Æ¥´¥ê¡¡¡§¡¡¤â¤¯¤·¤¤¡Ã¥²¡¼¥à¡Ã¥ì¥·¥Ô¡Ã¥³¥ó¥Ô¥å¡¼¥¿¡Ã»¨Ê¸¡ÃÀ¸³è¡ÃÅŻҹ©ºî¡Ã¤ª¤¤¤·¤¤Å¹¥Þ¥Ã¥×

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Top¥Ú¡¼¥¸¤Ø¡¡|¡¡¤â¤Æ¤Ê¤¤SNS¡Ö¤â¤¯¤·¤¤¡×