最新情報!!3/6(金)「ROBOXのCM」を投稿しました。10/11(土)ホームページのレイアウトを変更しました。ライセンスの下に提供されています。‎マスタ2011年のNHKロボコンで使われるマスター基盤用のプログラムを作っていきます。(添付ファイルを参照してください)(注意):version3.1以降は大幅に仕様が変更されたため以前のプログラムとは互換性がありませんのであしからず。lcd.h)が入っています。1.使われている関数について。TWI通信に必要なレジスタの初期化する関数です。TWSRとTWBRの値を変更して、SCL周波数を400kHzに設定します。TWAMRをセットすることで従装置アドレスの遮蔽を解除します。TWI通信を開始する関数です。TWSTAとTWENとTWINTをセットにすることで開始条件を送信します。loop_until_bit_is_set(TWCR,TWINT)で開始条件が送信されるまで待ちます。buf)は、1バイトのデータを送信する関数です。引数をTWDRに代入して、TWINTをクリアすることでTWDRに入っているデータを送信します。ack)は、データレジスタから受信したデータを取り出す関数です。データレジスタの値を返し値にすることでデータを取り出します。受信したデータの数が規定数に達したとき、ack=0となりTWEAをクリアすることでNACK応答をします。TWI通信を終了する関数です。TWSTOとTWENとTWINTをセットすることで、終了条件を送信します。length)のデータを送信する関数です。*bufferは配列の先頭のアドレスにそれまでに送信したデータの数分を足したアドレスになります。length)のデータを受信する関数です。*bufferは配列の先頭のアドレスにそれまでに受信したデータの数分を足したアドレスになります。Error(void)はエラーチェック用の関数ですが未実装です。基本的なプログラムを作ることができます。//受信する際は、send(address,data,3)をreceive(address,data,3)に変更すればよい。0b11110000;return;}//////////////////////////////////////////////////////////////////////またより複雑なプログラムを組む場合は、main文の中を変えることで作ることができます。3.今後の方針つぎはエラーチェック関数を付け加えるつもりです。エラーチェック関数TWSRの前置分周器ビットにマスクをかけ、状態コードを判定することでエラーチェックを行うことができます。