3.5 DMA控制器 芯片资料.ppt
文本预览下载声明
DMA 库函数(4/5) DMA_setDstAddress (__MSP430_BASEADDRESS_DMAX_3__, ……); //设置目的地址 目的地址变化 DMA_DIRECTION_UNCHANGED T 目的地址不变 DMA_DIRECTION_DECREMENT T 目的地址递减 DMA_DIRECTION_INCREMENT T 杜密地址递增 目的地址 …… 通道选择 DMA_CHANNEL_0 T DMA0 DMA_CHANNEL_1 T DMA1 …… DMA_CHANNEL_8 T DMA8 DMA 库函数(5/5) DMA_startTransfer(__MSP430_BASEADDRESS_DMAX_3__, DMA_CHANNEL_0); //启动传输 DMA_enableTransfers(__MSP430_BASEADDRESS_DMAX_3__, DMA_CHANNEL_0); //使能传输 DMA_enableInterrupt (__MSP430_BASEADDRESS_DMAX_3__, DMA_CHANNEL_0); //使能中断 …… DMA应用举例软件触发数据存储的传输 概述: 在这个实验内存的两个区域之间数据传输的执行。数据传输是在软件的控制下开展的. A. 资源: 这个实验使用下列资源: DMA控制器. DMA应用举例软件触发数据存储的传输 B. 软件结构: 数据传输 源地址DMA0SA 目的地址DMA0DA 传输数据的字数DMA0SZ DMA0 软件触发 源地址递增 禁用看门狗 目的地址递增 配置DMA 数据传输 DMA应用举例软件触发数据存储的传输 C. 系统配置: DMA 通道配置: 通过软件配置DMA通道为字格式数据传输; 每次传输之后源地址和目的地址需马上增一. DMA0CTL = DMADT_0 | DMASRCINCR_3 | DMADSTINCR_3 | DMAEN; DMA应用举例软件触发数据存储的传输 C. 系统配置: DMA通道配置: 数据的源地址和目的地址加载到各自的寄存器中: DMA0SA = (void (*)( )) tab_1; DMA0DA = (void (*)( )) tab_2; 传输32字的数据,写入DMA传输基本单元个数寄存器 DMA0SZ = 0x0020; DMA应用举例软件触发数据存储的传输 C. 系统配置: DMA通道配置(库函数): DMA_init(__MSP430_BASEADDRESS_DMAX_3__, DMA_CHANNEL_0, //DMA0 DMA_TRANSFER_SINGLE, //单次传输 32, //一次触发传输32个数据 DMA_TRIGGERSOURCE_0, //软件触发 DMA_SIZE_SRCBYTE_DSTBYTE, //字节传输 DMA_TRIGGER_RISINGEDGE); //上升沿触发 DMA应用举例软件触发数据存储的传输 C. 系统配置: DMA通道配置(库函数): DMA_setSrcAddress(__MSP430_BASEADDRESS_DMAX_3__, DMA_CHANNEL_0, //MDA0 (unsigned long)tab1, //tab1作为源地址 DMA_DIRECTION_INCREMENT); //源地址递增 DMA_setDstAddress(__MSP430_BASEADDRESS_DMAX_3__, DMA_CHANNEL_0, //DMA0 (unsigned long)tab1, //tab2作为目的地址 DMA_DIRECTION_INCREMENT); //目的地址递增? //使能 DMA 通道 0 DMA_enableTransfers(__MSP430_BASEADDRESS_DMAX_3__, DMA_CHANNEL_0); DMA应用举例A
显示全部