みなさま こんにちは。 原槙と言うものです。 自分の都合の良いときだけメールを出して大変恐縮いたします。 440Hzの少し綺麗な音(sin波)をD/A出力したくて、まずは割り込みで何とか クリア、よせばいいのに、勢いづいて、DMAによる方法で作り変えてみました。 ところが、いろいろと思考錯誤してもFlash ROM 書き込みの回数ばかりが増え る一方で、全く動作する気配がありません。 え!、どうして? ここは「困ったときの神頼み」とメールした次第です。 #include <3048f.h> unsigned char sin_data[]= {128,192,238,255,238,192,128,65,18,0,18,65}; #define N 12 main() { char dummy; /* DA0 */ DA.CR.BIT.DAOE0=1; /* ITU0 */ ITU0.TCR.BYTE=0x20; ITU0.TSR.BIT.IMFA=0; ITU0.TIER.BIT.IMIEA=1; ITU0.TCNT=0; ITU0.GRA=3030; /* 16MHz/3030=440*12Hz */ /* DMAC0A */ DMAC0A.MAR=sin_data; DMAC0A.IOAR=(unsigned char)&DA.DR0; DMAC0A.ETCR=N*256+N; dummy=DMAC0A.DTCR.BYTE; DMAC0A.DTCR.BYTE=0x10; /* repeat mode */ DMAC0A.DTCR.BIT.DTE=1; /* Start */ ITU.TSTR.BIT.STR0=1; /* ITU0 start */ for(;;); } 環境は全て秋月さんです。