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); } }
void HIT_hardwaresetup() { R_PG_Clock_Set(); SYSTEM.MSTPCRA.BIT.MSTPA17 = 0;//////////////////////////////////S12AD SYSTEM.MSTPCRA.BIT.MSTPA16 = 0; SYSTEM.MSTPCRA.BIT.MSTPA23 = 0;//10 BIT S12AD0.ADCSR.BIT.CKS = 0X03; S12AD1.ADCSR.BIT.CKS = 0X03; S12AD0.ADCSR.BIT.ADCS = 0X01;//Continuous scan mode S12AD1.ADCSR.BIT.ADCS = 0X01; // R_PG_SCI_Set_C0();//SET UP SCI S12AD0.ADANS.BIT.CH=0X03; S12AD1.ADANS.BIT.CH=0X03; S12AD0.ADCER.BIT.ADRFMT = 1; S12AD1.ADCER.BIT.ADRFMT = 1; S12AD0.ADSSTR = 20;/////////////SAMPLING REGISTER S12AD1.ADSSTR = 20; S12AD0.ADCSR.BIT.ADST=1; S12AD1.ADCSR.BIT.ADST=1; AD0.ADCSR.BIT.CH = 0X01;//CH0 AND CH1 AD0.ADCR.BIT.MODE = 0X02;//Continuous scan mode AD0.ADCR.BIT.CKS = 0X03;//1 1: PCLK AD0.ADDPR.BIT.DPSEL =1;//high 10 bit AD0.ADDPR.BIT.DPPRC = 0;//10 bit jing du AD0.ADCSR.BIT.ADST = 1;//10BIT START // R_PG_SCI_Set_C2(); HIT_pwm=0; HIT_tgr_d_val3=500-HIT_pwm; HIT_tgr_b_val3=500-HIT_pwm; HIT_tgr_c_val4=500-HIT_pwm; HIT_tgr_a_val4=500-HIT_pwm; HIT_tgr_b_val4=500-HIT_pwm; HIT_tgr_d_val4=500-HIT_pwm; R_PG_Timer_Set_GPT_U0();///////////GPT R_PG_Timer_Set_GPT_U0_C0(); R_PG_Timer_SetCounterValue_GPT_U0_C0(HIT_counter_val0); R_PG_Timer_SetGTCCR_A_GPT_U0_C0(HIT_tgr_b_val3); R_PG_Timer_SetGTCCR_B_GPT_U0_C0(HIT_tgr_d_val3); R_PG_Timer_Set_GPT_U0_C1(); R_PG_Timer_SetCounterValue_GPT_U0_C1(HIT_counter_val1); R_PG_Timer_SetGTCCR_A_GPT_U0_C1(HIT_tgr_a_val4); R_PG_Timer_SetGTCCR_B_GPT_U0_C1(HIT_tgr_c_val4); R_PG_Timer_Set_GPT_U0_C2(); R_PG_Timer_SetCounterValue_GPT_U0_C2(HIT_counter_val2); R_PG_Timer_SetGTCCR_A_GPT_U0_C2(HIT_tgr_b_val4); R_PG_Timer_SetGTCCR_B_GPT_U0_C2(HIT_tgr_d_val4); R_PG_Timer_Start_CMT_U0_C0();//CMT module start(1ms interrupt) // R_PG_Timer_Start_CMT_U1_C2();// GPT0.GTONCR.BIT.OAE = 0; GPT.GTSTR.WORD = 0X07;//////START SYNCROSCOLLY // GPT0.GTONCR.BIT.OBE = 0; // GPT1.GTONCR.BIT.OAE = 0; // GPT1.GTONCR.BIT.OBE = 0; // GPT2.GTONCR.BIT.OAE = 0; // GPT2.GTONCR.BIT.OBE = 0; PORT9.DDR.BIT.B5=1; }