/***********************************************************************/
/* */
/* FILE :ssb_0.c */
/* DATE :Tue, Jun 21, 2005 */
/* DESCRIPTION :Main Program */
/* CPU TYPE :Other */
/* */
/* This file is generated by Renesas Project Generator (Ver.4.0). */
/* */
/***********************************************************************/

#include <asmmacro.h> 
#include "start.h" 

unsigned char i; 
int data[120]={0};
long total;
int data_ad;

int fir[60]={

/*; ----------------------------------------------------------
; Band(1) Low:0.00000 High:0.05150 R= -45.48977
; Band(2) Low:0.10150 High:0.21200 R= 4.604413E-02
; Band(3) Low:0.25000 High:0.50000 R= -45.48977
;Q14 60taps fs=4.92KHz----------------------------------------*/


-83,-48,24,46,
-6,3,129,190,
53,-94,-34,58,
-120,-395,-307,76,
175,-86,-24,600,
917,293,-390,-66,
424,-684,-2824,-2874,
600,4488,4488,600,
-2874,-2824,-684,424,
-66,-390,293,917,
600,-24,-86,175,
76,-307,-395,-120,
58,-34,-94,53,
190,129,3,-6,
46,24,-48,-83



};

int test;
void set_timerC(void);
void set_AD8(void);

void main(void)
{
i=0;

set_CLK20();

set_LED();

set_timerC();

set_AD8();

tcc00 = 1; //タイマCカウント制御開始ビットのセット
adst=1; //AD変換開始
while(1) 
{

while(adst==1); 

data_ad =ad - 0x80;

if( (i/2)%2 ) data_ad =-data_ad; 


data[119-i] = data[59-i] = data_ad;

total=rmpa_w(0, 60, fir, data+59-i);

total=total>>14;

tm0=(int)(total+0x80) ; //13 cycles

if (++i==60)i=0;

adst=1; 

}

}

void set_timerC(void)
{

pd3_5=1; //P3_5をタイマCの出力に設定
p3_5=1; //初期値=1


tcc00=0;

tcc01=0; //タイマCカウントソース f1
tcc02=0;

tcc12=1; //タイマC カウンタリロード選択ビット 1

tcc13=1; //コンペア0選択ビット アウトプット=1

tcc14=1; //コンペア0一致で出力を L に設定
tcc15=0; 

tcc16=1; //コンペア1一致で出力を H にする
tcc17=1;

tcout5=1; //コンペア出力を  設定


tm0=0; //カウンタ 初期値

tm1=255; //これで正常


}

void set_AD8(void)
{
pd1_1 =0; //p1_1 読み出しモード AN9
p1_1 =0; //初期値=0

pd1_0=pd1_2=pd1_3=1; //未使用の端子を出力にして開放
pd1_4=pd1_5=pd1_6=pd1_7=1;


md =0; //単発モード
adgsel0 =1; //Port1グループ選択
adcap =0; //ADSTビットで開始
cks0 =1; //f2を選択 cks1=0にする

bits =0; //8bit
cks1 =0;

vcut =1; //Vref接続

ch2 =1; //AN9
ch1 =0;
ch0 =1;
smp =1; //サンプルホールドあり
}