忍者ブログ

明日の設計図

たまにロボットを考えるブログ・・・。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

現在、新しいコメントを受け付けない設定になっています。

KONDOさんとSCIでトークする。

カテゴリーに迷う。

マイコンカーがてら、SH7125と戯れる時間ができたので。
4034とトークしようと思った。

ベステクでシリアルのライブラリあるので、それとなくできると思って取り組んだけど、おいらにはいがいと強敵だったので、奮戦記録をのこす。

回路とか
CIMG2123.JPGこんな感じ。








①まず、ベステクのputcとgetcで何にも考えずに、近藤HPにあるset_posiを作る。
動かしてみる。

⇒          動かない

②シリアルマネージャとSHの波形を比べる。
ch1_100us_2.00v_manager.jpg






ch1_100us_2.00v_SH2.jpg






もちろん、上の方がマネージャです。
すぐ見てわかることは、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回]

PR

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

プロフィール

HN:
Adel
年齢:
34
性別:
男性
誕生日:
1989/09/17
職業:
会社員
趣味:
モチベーション探し
自己紹介:
ロボットつくるのが夢

ブログ内検索

アクセス解析