/***********************************************************************/
/* */
/* FILE :fir_BPF_60.c */
/* DATE :Fri, May 20, 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.12700 R= 1.709545E-02
; Band(2) Low:0.17700 High:0.50000 R= -54.11012
;Q14 60taps LowPass ----------------------------------------*/
-5,24,22,6,
-25,-44,-24,31,
77,61,-24,-115,
-122,-9,151,212,
82,-171,-336,-220,
154,504,473,-55,
-760,-1015,-290,1408,
3427,4791,4791,3427,
1408,-290,-1015,-760,
-55,473,504,154,
-220,-336,-171,82,
212,151,-9,-122,
-115,-24,61,77,
31,-24,-44,-25,
6,22,24,-5
};
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;
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; //サンプルホールドあり
}