[H8-ML(441)] DMAによるsin波出力?
From: 原槙 真也 <haramaki@xxxxxxxxxxxxxxxx>
Date: 1999年10月29日(金)20時59分23秒
みなさま こんにちは。 原槙と言うものです。
自分の都合の良いときだけメールを出して大変恐縮いたします。

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(;;);
}
環境は全て秋月さんです。


スレッド概略
[表示中](起点)
 └[444(1)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]