藤原と申します。
既にいろいろなアイディアが出されているようですが……
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