アフィリエイト広告を利用しています
Ad×Ad


Ad×Adは表示されるだけで報酬がもらえます。
以下から登録すると100ptもらえます。
 →  アドアド -あなたの街の無料広告サイト-
検索
最新記事

広告

posted by fanblog

2016年07月02日

受信側のソフトウエアも修正しました

int型の変数の値を読みたいということと、2バイトのレジスターの値を読みたいということで受信側のソフトウエアも修正しました。

slave_receiver2


// Wire Slave Receiver
// by Nicholas Zambetti < http://www.zambetti.com >

// Demonstrates use of the Wire library
// Receives data as an I2C/TWI slave device
// Refer to the "Wire Master Writer" example for use with this

// Created 29 March 2006

// This example code is in the public domain.


#include < Wire . h >

void setup ( ) {
Wire . begin ( 8 ) ; // join i2c bus with address #8
Wire . onReceive ( receiveEvent ) ; // register event
Serial . begin ( 230400 ) ; // start serial for output
}

void loop ( ) {
delay ( 100 ) ;
}

// function that executes whenever data is received from master
// this function is registered as an event, see setup()
char c ;
int x , y ;

void receiveEvent ( int howMany ) {
while ( 2 < Wire . available ( ) ) { // loop through all but the last
c = Wire . read ( ) ; // receive byte as a character
if ( c == '*' ) {
break ;
}
Serial . print ( c ) ; // print the character
}
Serial . print ( " is " ) ;

if ( c == '*' ) {
//debugRegPrint
x = Wire . read ( ) ;
y = Wire . read ( ) ; // receive byte as an integer
x = 256 * y + x ;
Serial . print ( "0x" ) ;
Serial . println ( x , HEX ) ; // print the integer

} else {
//debugPrint
x = Wire . read ( ) ;
y = Wire . read ( ) ; // receive byte as an integer
x = 256 * y + x ;
Serial . println ( x ) ; // print the integer
}
}



void receiveEvent(int howMany)を修正しました。

文字列の最後が「*」で終わると、HEXとして処理します。それ以外はint型として処理します。

この記事へのコメント
コメントを書く

お名前: 必須項目

メールアドレス: 必須項目


ホームページアドレス: 必須項目

コメント: 必須項目

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/5210072
※ブログオーナーが承認したトラックバックのみ表示されます。

※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック
×

この広告は30日以上新しい記事の更新がないブログに表示されております。

Build a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: