- Äɲ䵤줿¹Ô¤Ï¤³¤Î¤è¤¦¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£
- ºï½ü¤µ¤ì¤¿¹Ô¤Ï
¤³¤Î¤è¤¦¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£
{{category ÅŻҹ©ºî}}
!!!¸½¾Ý
*PSoC3 FTK ¤ËÉÕ°¤Î¥µ¥ó¥×¥ë BubbleLevel ¥³¡¼¥É¤ò»²¹Í¤Ë ADC ¤«¤é¤Î°ú¤¼è¤ê¤ò DMA->ISR(³ä¤ê¹þ¤ß) ·Ðͳ¤Ç¹Ô¤ª¤¦¤È¤¹¤ë¤È¡¢¤¦¤Þ¤¯Æ°ºî¤¹¤ë¤È¤¤È¤·¤Ê¤¤¤È¤¤¬¤¢¤Ã¤¿¡£
*PSoC3 FTK ¤ËÉÕ°¤Î¥µ¥ó¥×¥ë BubbleLevel ¥³¡¼¥É¤ò»²¹Í¤Ë ADC ¤«¤é¤Î°ú¤¼è¤ê¤ò DMA->ISR(³ä¤ê¹þ¤ß) ·Ðͳ¤Ç¹Ô¤ª¤¦¤ÈÊѹ¹¤·¤Æ¤ß¤¿¤¬¡¢¤¦¤Þ¤¯Æ°ºî¤¹¤ë¤È¤¤È¤·¤Ê¤¤¤È¤¤¬¤¢¤Ã¤¿¡£
Êѹ¹¤·¤¿ ADC ¥Ö¥í¥Ã¥¯¿Þ
¡ãÊѹ¹¤·¤¿ ADC ¥Ö¥í¥Ã¥¯¿Þ¡ä
{{ref_image BubbleLevel_DMA.gif}}
!!!Âнè
¡¦Æ±¤¸ 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);
}