78k0s/KA1+でデータロガー的な物

 2012-02-25
A/D変換結果をUART(RS232C)でパソコンに転送するだけのもの。

 
とはいえ、過去記事のものの焼き直しなんですけどね。

ちょいと訳あって焼き増ししようとしたら詰ったのでメモを残しておく。


当初は「以前のprogramを焼き直せばいいんでしょ」と簡単に考えていて、Renesasのページから最新の開発ツールをダウンロードしてきたのですがどうもこれのバージョンが変わっていて以前のコードだと動かなくなっていました(´・ω・`)

AD関係のAPIの動きが変更されておりADchの選択手順がまるで違う感じに。。。
Appliletは便利だけどこうやって知らないうちに変更されてたらびっくりしちゃうね。



void main( void )
{
/* Start user code. Do not edit comment generated here */
WDT_Restart();

UART6_Start(); /* startup uart */
print("-------- 78k0s KA1+ 10bit ADC UART converter --------\n",0);

get_addata( &addat0 , &addat1 , &addat2 , &addat3 );

WDT_Restart();
while (1) {

P13.0=1;
get_addata( &addat0 , &addat1 , &addat2 , &addat3 );
print("ADC0:%d\n",addat0);
print("ADC1:%d\n",addat1);
print("ADC2:%d\n",addat2);
print("ADC3:%d\n",addat3);
wait_ms(400);
WDT_Restart();

P13.0=0;
wait_ms(400);
WDT_Restart();

}
/* End user code. Do not edit comment generated here */
}


void get_addata(unsigned short *result0, unsigned short *result1, unsigned short *result2, unsigned short *result3 ){
AD_SelectADChannel(ADCHANNEL0);
ad_finish=0;
AD_Start();
while(ad_finish == 0);
AD_Read(result0);
AD_Stop;

AD_SelectADChannel(ADCHANNEL1);
ad_finish=0;
AD_Start();
while(ad_finish == 0);
AD_Read(result1);
AD_Stop;

AD_SelectADChannel(ADCHANNEL2);
ad_finish=0;
AD_Start();
while(ad_finish == 0);
AD_Read(result2);
AD_Stop;

AD_SelectADChannel(ADCHANNEL3);
ad_finish=0;
AD_Start();
while(ad_finish == 0);
AD_Read(result3);
AD_Stop;

}




昔書いたコードにはないWDTをrestartさせる処理を書き足しました。

なぜかというと、昔のコードはWDTで意図的にresetさせていたのでWDTをrestartさせる必要がなかったから。
どうしてWDTでresetしてたのかというと…それはわかりません。 当時としては10分くらい?動作させるとなぜか処理がとまり、WDT仕込んでいても吠えず、CPU命令でトグルさせていたPort出力も停止するという謎現象に突き当たっており、そのときは端子resetするしか復旧させることが出来なかった。なので対症療法として1秒毎にWDTで意図的にreset入れてた。

じゃあ今回はなんでWDTをrestartさせている(=WDTをちゃんと使っている)のかというと…それもわかりません。 ハードウェア(外部回路)自体は当時と一緒なのですがなぜか停止せずにちゃんと動くようになっていました。
怪しいと思っているのはAppliletの変更。昔のはなんか駄目なコードだったんじゃないの~?
gooleで検索してみるとUARTあたりに良くない感じのコードが出されるよ、っていう記述はあった。ま、ちゃんと動くようになってよかった。

それから、今回はP13.0ポートをCPU命令でトグルさせて動作表示として使いました。昔の奴だと外見上よくわからなかったので。どうせたくさんPort余ってるしね。




BGMは適当にyoutubeが用意してくれた奴で上書きしました。かっこいい?


 
コメント












管理者にだけ表示を許可する
トラックバック
トラックバックURL:
http://wbbwbb.blog83.fc2.com/tb.php/67-eb4768f3
≪ トップページへこのページの先頭へ  ≫