SH7263/SH7203 Group
Data Transfer to On-chip Peripheral Modules with DMAC
REJ06B0734-0101/Rev.1.01
December 2008
Page 13 of 17
5. Sample Program Listing "main.c" (5)
217
bit6
: DS : DREQ select :0 Low level
Unused
218
bit5
: TB : cycle :0---------------
Cycle-stealing
mode
219
bit4-3
: TS : transfer size:B'00---
Byte transfer
220
bit2
: IE : interrupt enable:0---
Disable interrupt
221
bit1
: TE : transfer end----------
222
bit0
: DE : DMA enable bit:0-----
DMA
223
*/
224
225
/* ----Setting DMA extension resource selector 0---- */
226
DMAC.DMARS0.BIT.CH1MID = 0x20;
/* MID = SCIF0 */
227
DMAC.DMARS0.BIT.CH1RID = 0x01;
/* RID = Transmission */
228
229
/* ----Setting DMA operation register---- */
230
DMAC.DMAOR.WORD &= 0xfff9u;
/* Clear AE,NMI bits
*/
231
232
if(DMAC.DMAOR.BIT.DME == 0ul){
/* Enable DMA transfer on all channels
*/
233
DMAC.DMAOR.BIT.DME = 1ul;
234
}
235
236
/* ----DMA transfer execution---- */
237
DMAC.CHCR1.BIT.DE = 1ul;
/* Enable DMA transfer
*/
238 }
239 /*""FUNC COMMENT""*******************************************************
240 * Outline
: DMAC stop
241 *-----------------------------------------------------------------------
242 * Include
: #include "iodefine.h"
243 *-----------------------------------------------------------------------
244 * Declaration : void io_dma1_stop(void);
245 *-----------------------------------------------------------------------
246 * Function
: Detects the end of DMA transfer and disables DMA transfer
247 *-----------------------------------------------------------------------
248 * Argument
: void
249 *-----------------------------------------------------------------------
250 * Return Value: void
251 *-----------------------------------------------------------------------
252 * Notice
:
253 *""FUNC COMMENT END""***************************************************/
254 void io_dma1_stop(void)
255 {
256
/* Detecting end of transfer */
257
while(DMAC.CHCR1.BIT.TE == 0ul){
258
/* Wait until the TE bit is set*/
259
}
260
261
/* ----Stopping DMA transfer---- */
262
DMAC.CHCR1.BIT.DE = 0ul;
/* Disable DMA1 transfer */
263 }
264
265 /*""FUNC COMMENT""*******************************************************
266 * Outline
: Initial setting of SCIF0 as an asynchronous (UART) transmit module
267 *-----------------------------------------------------------------------
268 * Include
: #include "iodefine.h"
269 *-----------------------------------------------------------------------
270 * Declaration : void io_init_scif0(int bps);
271 *-----------------------------------------------------------------------