Exemple #1
0
void nunchuk_decode(uint8_t *data, uint32_t size)
{
	int i;
	for (i=0; i<size; i++) {
		data[i] = nunchuk_decode_byte(data[i]);
	}
}
Exemple #2
0
void main(void)
{
	int cnt = 0;
	unsigned char cmd_send1[] = {0x40,0x00};
	unsigned char cmd_send2[] = {0x00};
	volatile 	int send_f = 0;
	volatile	int	s_f =0 ;
	volatile	int 	sci_f = 0;
	volatile 	int f = 0;
	char moji[50] = {0}; 	
	char moji_null[] = {0};
	uint16_t count[] = {0};
	uint16_t count_null[] = {0};
	unsigned char format = 0;
	
	unsigned char joy_x_axis = 0;
	unsigned char joy_y_axis = 0;
	int accel_x_axis = 0;
	int accel_y_axis = 0;
	int accel_z_axis = 0;
	unsigned char z_button = 0;
	unsigned char c_button = 0;
	char buffer[] = {0};
	
	Init_Sci();
	Init_Led();
	R_PG_Clock_Set();
	R_PG_I2C_Set_C1();
	
	while(1){
		
		LED_0(ON);
		
		R_PG_I2C_MasterSend_C1(
		format,//スレーブアドレスフォーマット
		SLAVE_ADDRESS_W,//スレーブアドレス
		cmd_send1, //送信データの格納先アドレス
		2//送信データ数
		);
		
		for(f = 0;f < 10000; f++);
	
		R_PG_I2C_MasterSend_C1(
		format,//スレーブアドレスフォーマット
		SLAVE_ADDRESS_W,//スレーブアドレス
		cmd_send2, //送信データの格納先アドレス
		1//送信データ数
		);
		
		for(f = 0;f < 10000; f++);
		
		R_PG_I2C_MasterReceive_C1(
		format,			//スレーブアドレスフォーマット
		SLAVE_ADDRESS_R,		//スレーブアドレス
		buffer,	//受信データの格納先アドレス
		7//受信データ数
		);
		
		for(cnt = 0;cnt < 8;cnt++){
			buffer[cnt] = nunchuk_decode_byte(buffer[cnt]) ;
		}
		
		LED_1(ON);
		
		joy_x_axis = buffer[0];
		joy_y_axis = buffer[1];
		accel_x_axis = (buffer[2]) << 2;
		accel_y_axis = (buffer[3]) << 2;
		accel_z_axis = (buffer[4]) << 2;
		
		if ((buffer[5] & 0x01) != 0){
			z_button = 1; 
		}else{
			z_button = 0; 
		}
		if ((buffer[5] & 0x02) != 0){
			c_button = 1; 
		}else{
			c_button = 0; 
		}
		accel_x_axis += ((buffer[5]) >> 2) & 0x03;
		accel_y_axis += ((buffer[5]) >> 4) & 0x03;
		accel_z_axis += ((buffer[5]) >> 6) & 0x03;
		
	
		
		
		
		//シリアル通信
		#if MODE_SCIDATA_BOX != OFF
		//座標データ
		g_sci1 = joy_x_axis;
		g_sci2 = joy_y_axis;
		g_sci3 = accel_x_axis;
		g_sci4 = accel_y_axis;
		g_sci5 = accel_z_axis;
		g_sci6 = c_button;
		g_sci7 = z_button;
		//PCにデータ送信
		sci_transformer();
		#endif
		LED_2(ON);
					
		}
}