about
http://shokai.org
橋本 翔(Sho Hashimoto)
電子部品があまりがちだったので売っていたら、橋本翔→橋本商会と呼ばれていた。
慶應SFC政策メディア研究科 増井研究室のクソ学生です。
webサービスに接続されたgadgetなどを作っています。
開発環境は
電子工作:AVR、PSoC1、Arduino
システム:Ruby, C++
UI:JavaScript, OpenCV, Processing
サーバサイド:Ruby, Sinatra
あたりを使う事が多い。最近はJRubyとかZeroMQとかMongoDBが俺の中で流行っている。
githubやrubygemsでコードをいろいろ公開している。
主な受賞歴など
- 2007年 IPA未踏ユース採択
- 2008年 Laval Virtual Award 2007 Prix de l’innovation
- 2008年 ACM Mobile HCI Demo session 2nd prize
- 2009年 IPA未踏ソフトウェア採択
- 2012年 日経BP Android Application Award Webサービス/アプリケーション部門優秀賞

はじめまして。
京都教育大学附属高校電子工学部です。
僕たちの部活では来年のロボカップジュニアサッカーに向けて活動しています。
「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になる
という流れで合っていますか?
すみませんが、答えていただけると幸いです。
よろしくお願いします。
どうもこんにちは。
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になるわけです
よく分かりました。
ご指摘いただきありがとうございました。