¥È¥Ã¥× °ìÍ÷ ¸¡º÷ ¥Ø¥ë¥× RSS ¥í¥°¥¤¥ó

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

  • Äɲ䵤줿¹Ô¤Ï¤³¤Î¤è¤¦¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£
  • ºï½ü¤µ¤ì¤¿¹Ô¤Ï¤³¤Î¤è¤¦¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£
{{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);
 }