about

2010 年 8 月 13 日 コメントをどうぞ コメント

罘翔(Sho Hashimoto)
電子部品があまりがちだったので売っていたら、橋本翔→橋本商会と呼ばれていた。
慶應SFC政策メディア研究科 増井研究室の1年生です。

webサービスに接続されたgadgetなどを作っています。
開発環境は
組み込み:AVR、PSoC1、Arduino、moxa、BeagleBoard、mbed
システムプログラミング:C#.NET、C++
グラフィック:OpenCV、Flash(AS2/3)、Processing
サーバサイド:Ruby、Sinatra
あたりを使う事が多い。最近はJRubyとかZeroMQとかMongoDBが俺の中で流行っている。

http://shokai.org

  1. 2010 年 10 月 31 日 17:19 | #1

    はじめまして。
    京都教育大学附属高校電子工学部です。
    僕たちの部活では来年のロボカップジュニアサッカーに向けて活動しています。
    「PSoC CY8C29466のI2CHWモジュールで通信」の記事を拝見し、感動しました。
    今、PSoCマイコンのI2CHWのAPI関数の使い方で困っています。

    そこでお聞きしたいのですが、PSoCマイコンをスレーブにした場合、

    ①マスターからスレーブへの書き込み
    PSoCがマスタからの信号を自動的に読み取った時、I2CHW_1_bReadI2CStatus();の返り値がI2CHW_WR_COMPLETEに変化する
    →I2CHW_1_ClrWrStatus();する
    →I2CHW_1_InitWrite(バッファ名,バッファサイズ);を行うと「バッファ名」にマスタから受け取った信号が入る
    →「バッファ名」を読み取ったらOK!(バッファ名はBYTEの変数としてあらかじめ宣言しておく)
     という流れで合っていますか?

    ②スレーブからマスタへの読み込み
    例えばあらかじめbuf_rdという変数を宣言しておく
    →あらかじめI2CHW_1_InitRamRead(buf_rd, バッファサイズ);でRAMに移しておく
    →マスタから送信を要求されたら自動的にRAMに入っているデータが送信される
    →I2CHW_1_bReadI2CStatus();の返り値がI2CHW_RD_COMPLETEになる
    という流れで合っていますか?

    すみませんが、答えていただけると幸いです。
    よろしくお願いします。

  2. 2010 年 10 月 31 日 20:43 | #2

    どうもこんにちは。
    1について、
    > I2CHW_1_bReadI2CStatus();の返り値がI2CHW_WR_COMPLETEに変化する
    これはちょっと違います。I2CHW_WR_COMPLETEになるのではなくて、if(status & I2CHW_WR_COMPLETE)としている通り、I2CHW_WR_COMPLETEをビットマスクとして使って論理積を取ると、1以上の値が得られるという事です。

    2は
    ②スレーブからマスタへの読み込み
    じゃなくて「スレーブからマスタへの書き込み」ならあってます。

    > →I2CHW_1_bReadI2CStatus();の返り値がI2CHW_RD_COMPLETEになる
    これも1と同じく、I2CHW_RD_COMPLETEになるのではなく、&で論理積を取ると1以上になるのでif文の中がtrueになるわけです

  3. 2010 年 10 月 31 日 21:33 | #3

    よく分かりました。
    ご指摘いただきありがとうございました。

  1. トラックバックはまだありません。

track feed