[H8-ML(2620)] Re: 大きな配列をタイマー割り込みで参照
From: FUJIHARA Keiichi <keiichi@xxxxxxxxxxxxx>
Date: 2002年12月27日(金)11時54分10秒
藤原と申します。
既にいろいろなアイディアが出されているようですが……

This message is reply to Katsushi MATSUBAYASHI - san
(Subject was : [H8-ML(2610)] 大きな配列をタイマー割り込みで参照)

Message-ID: <200212261435.AA05733@xxxxxxxxxxxxxxxxxxxx>
in Thu, 26 Dec 2002 23:35:30 +0900 ...

> 割り込みルーチンでは,当初,
> void interrupt_timer0(void)
> {
>     DA.DR0=dat[ratio][ampR][count%divNum];
>     DA.DR1=dat[ratio][ampL][count%divNum];
>     count++;
> }


/* 外部で 
unsinged char * adrR = &dat[raito][ampR][0];
unsinged char * adrL = &dat[raito][ampL][0];

unsigned char * adrRBase = adrR;
unsigned char * adrLBase = adrL;

を一度計算しておく
*/

void interrupt_timer(void)
{
  satic unsined char count;
  /* この count を 0 に初期化するのが大変なので、グローバル変数でも可 */

   DA.DR0 = *(adrR++);
   DA.DR1 = *(adrL++);

   if (count++ > divNum)
   {
      count = 0;
      adrL = adrLBase;
      adrR = adrRBase;
   }
}

などで、多少速くなるかもしれない気はします。


-- 
_/ -- Last 14295 hours until ATHENS 2004 Olympic Games (27 Dec @157) -
_/ FUJIHARA Keiichi
_/ E-Mail : keiichi@xxxxxxxxxxxxx <or> nagi@xxxxxxxxxxxxxxx
_/ URL    : http://www.keiichi.fujihara.name/
--------------------------------------------+----- Luna Phase 22.28 --
PGP FingerPrint = 7CC3 4F95 8CC7 87D3 7178  C348 CD65 7F08 D68F 69F6


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


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


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