カテゴリーに迷う。
マイコンカーがてら、SH7125と戯れる時間ができたので。
4034とトークしようと思った。
ベステクでシリアルのライブラリあるので、それとなくできると思って取り組んだけど、おいらにはいがいと強敵だったので、奮戦記録をのこす。
回路とか
こんな感じ。
①まず、ベステクのputcとgetcで何にも考えずに、近藤HPにあるset_posiを作る。
動かしてみる。
⇒ 動かない
②シリアルマネージャとSHの波形を比べる。
もちろん、上の方がマネージャです。
すぐ見てわかることは、SHには返事がないということ。
なので、左半分の波形を見比べる。
⇒ 一緒じゃね!
③回路か?!
いや回路ではない。
ツェナが6.8vなので意味なくね!
とか、そんなこと問題ではないはず。
④ついに、ベステクのライブラリをひも解く。
!!!
パリティが禁止されている!
ライブラリに、1行書き加えて、
許可する。
動かす
⇒ 動かない
⑤すごく悩む。
①~④の手順を、20回ぐらいやる。
⇒ 動かない
⑥ホントにパリティ設定は変わっているのか?
mainループの中で、読みだしてみる。
SCSMRの・・・0x00
???
いや、0x20に設定したんだが・・・。
⑦すごい勢いで、ほかに設定を変えるコードがないか探す。
⇒ ない。・・・と思う。
⑧マイコンの初期化が終わった後に、もう一回パリティ設定だけする。
読みだしてみる。
0x20
・・・よし。
あれ?うごかないな。(PWM用の端子にさしていた。)
⑨さしかえる。
⇒ うごいた。
いえぇーい。
となる。
以下、そーすこーど抜粋。
/*シリアル通信的な*/
SCI0_INIT (br115200, 2, txb0, sizeof(txb0), rxb0, sizeof(rxb0));
SCI0.SCSMR.BYTE = 0x20;//ここでかえればいいのだ!!!
SCI1_INIT (br115200, 2, txb1, sizeof(txb1), rxb1, sizeof(rxb1));
↓↓↓↓↓↓↓↓↓↓↓こんな関数になったのだ↓↓↓↓↓↓↓↓↓↓↓
/*----------------------------------*/
/* KONDOと角度 */
/* Data入力 */
/*----------------------------------*/
int set_posi(char id, int pos)
{
unsigned char tx[3];
unsigned char rx[6];
int i;
int data=0;
tx[0] = 0x80 | id;
tx[1] = (unsigned char)( (pos >> 7) & 0x7f);
tx[2] = (unsigned char)(pos &0x7f);
//SCI1_PRINTF("tx[1] = 0x%3x, tx[2] = 0x%3x\n",tx[1],tx[2]);
for(i = 0; i<3; i++){
SCI0_OUT_DATA(tx[i]);
}
//wait(16);
for(i = 0; i<6; i++){
rx[i] = SCI0_IN_DATA();
}
data = (int)(rx[4] & 0x7f);
data = (data << 7) + (int)(rx[5] & 0x7f);
return data;
}
/*----------------------------------*/
/* KONDOと電流値 */
/* Data入力 */
/*----------------------------------*/
int get_data(char id, int sc)
{
unsigned char tx[2];
unsigned char rx[5];
int i;
int data=0;
tx[0] = 0xa0 | id;
tx[1] = (unsigned char)(sc & 0xff);
SCI1_PRINTF("tx0 = 0x%3x,tx1 = 0x%3x",tx[0],tx[1]);
for(i = 0; i<2; i++){
SCI0_OUT_DATA(tx[i]);
}
wait16(5);
for(i = 0; i<5; i++){
rx[i] = SCI0_IN_DATA();
}
data = (int)(rx[4] & 0xff);
return data;
}
あのですね。
グーグルセンセにきいても、お答があんまりよろしくなかったので・・・。
1.みんなグーグルセンセに聞くほどもなくできる。
2.みんなできないorやらない。
後者だろう(そんなバカな)。
おいれでもできたから、前者だろう。
まあうごいたからいいね。
[0回]