H8プログラム

ケンたろです。 
いろいろいいもの買いました。
まずホールドようのタミヤのモーター
c0198223_17141861.jpg


そしてH8のプログラムが完成しました!
AD変換してTJ3に送ります。
include <3048.h> //3048、3052の内部I/O定義
#define P5DDR (*(volatile unsigned char*)0xfffca)
void ioinit(void)
{

P5.DDR = 0xff; //P5を全ビット出力に設定
}

void ad03(void)
{
AD.ADCSR.BIT.ADF = 0; //ADFフラグクリア
AD.ADCSR.BIT.SCAN = 1; //スキャンモード選択
AD.ADCSR.BIT.CKS = 1; //クロックセレクト
AD.ADCSR.BIT.CH = 3; //チャネルセレクト AN0-AN3スキャンモード
AD.ADCSR.BIT.ADST = 1; //A/D変換スタート
}
void ad47(void)
{
AD.ADCSR.BIT.ADF = 0; //ADFフラグクリア
AD.ADCSR.BIT.SCAN = 1; //スキャンモード選択
AD.ADCSR.BIT.CKS = 1; //クロックセレクト
AD.ADCSR.BIT.CH = 7; //チャネルセレクト AN4-AN7スキャンモード
AD.ADCSR.BIT.ADST = 1; //A/D変換スタート
}




int main(void)
{
unsigned int a;
unsigned int b;
unsigned int c;
unsigned int d;
unsigned int e;
unsigned int f;
unsigned int g; //変換された信号を記憶する
ioinit();
while(1){ ad03();
while(AD.ADCSR.BIT.ADF == 0); //変換終了を待つ
a = AD.ADDRA >> 6;
b = AD.ADDRB >> 6;
c = AD.ADDRC >> 6;
d = AD.ADDRD >> 6;
ad47();
AD.ADCSR.BIT.ADF = 0;
while(AD.ADCSR.BIT.ADF == 0); //変換終了を待つ
e = AD.ADDRA >> 6;
f = AD.ADDRC >> 6;
g = AD.ADDRD >> 6;


DA.DACR.BIT.DAOE0 = 1; //DA0使用
DA.DACR.BIT.DAE = 0; //チャネル0 D/A変換を許可
int goukei = a+b+c+d+e+f+g;
if ( goukei>250 ){

AD.ADCSR.BIT.ADF = 0;
if ( a>b ){ if ( a>c ){ if ( a>d ){ if ( a>e ){ if ( a>f ){ if ( a>g ){
DA.DADR0 = 250;}}}}}}
else if ( b>c ){ if ( b>d ){ if ( b>e ){ if ( b>f ){ if ( b>g ){
DA.DADR0 = 225;}}}}}
else if ( c>d ){ if ( c>e ){ if ( c>f ){ if ( c>g ){
DA.DADR0 = 200;}}}}
else if ( d>e ){ if ( d>f ){ if ( d>g ){
DA.DADR0 = 185;}}}
else if ( e>f ){ if ( e>g ){
DA.DADR0 = 150;}}
else if ( e>g ){
DA.DADR0 = 125;}
else {
DA.DADR0 = 100;}
}
else {
AD.ADCSR.BIT.ADF = 0;
DA.DADR0 = 0;
}

} }
[PR]
by apionlego-soccer | 2009-10-24 17:17 | ケンたろのZAREGOTO
<< ホールドようのタイヤが..... 報告 >>