/* Start user code for adding. Do not edit comment generated here */ void packet_process(void) { int pwm; /* duty cycle for duty assignment mode */ int mode; /* assigned mode from master packet */ /* if ignore bit set, do nothing */ if (masterPacket[0] & 2) return; mode = masterPacket[0] & 12; /* servo off mode */ if (mode == 0) { set_motor_output(0); TRG = 0; count = 0; } /* duty assignment mode */ if (mode == 4) { pwm = (double)((int8_t)masterPacket[3]) / 100 * 3100; set_motor_output(pwm); } /* position control mode */ if (mode == 8) { pid_control(); } /* else reservation mode, don't need to do anything */ /* if this is the time we are processing this packet, and if required send reply */ if (firstCall == 1 && masterPacket[1] & 1 == 1) { firstCall = 0; bufferOut[0] = masterPacket[0]; bufferOut[2] = count >> 8; bufferOut[3] = count; bufferOut[4] = crc((((long)bufferIn[0]) << 24) + (((long)bufferIn[1]) << 16) + (((long)bufferIn[2]) << 8) + ((long) bufferIn[3]));*/ P1.5 = 1; R_UART2_Send(bufferOut , 5); /* when send finishes, it will toggle DE for receive */ }
/*********************************************************************************************************************** * Function Name: main * Description : This function implements main function. * Arguments : None * Return Value : None ***********************************************************************************************************************/ void main(void) { R_MAIN_UserInit(); /* Start user code. Do not edit comment generated here */ int transmit_count = 0; R_UART2_Create(); R_UART2_Start(); uart2Status = R_UART2_Receive(&uart2RxBuf[0],1); // Prime UART2 Rx R_TAU0_Create(); R_TAU0_Channel0_Start(); R_PORT_Create(); R_ADC_Create(); while (1U) { if(oneSec) { if(transmit) uart2Status = R_UART2_Send(uart2TxBuf, 1); counter++; oneSec = !oneSec; } if(uart2RxFlag) { uart2RxFlag = 0U; if(uart2RxBuf[0] == 'b') { uart2TxBuf[0] = counter; transmit_count = convertToNum(uart2TxBuf); //convert the ASCII symbols to integers instead. uart2Status = R_UART2_Send(uart2TxBuf, transmit_count); } else if(uart2RxBuf[0] == 'l') P7_bit.no7 = !P7_bit.no7; else if(uart2RxBuf[0] == 'a') { uint8_t adcvalue = 0; R_ADC_Start(); while(!adc_done_flag); //wait for interrupt adc_done_flag = 0; R_ADC_Get_Result_8bit(&adcvalue); uart2TxBuf[0] = adcvalue; transmit_count = convertToNum(uart2TxBuf); //convert the ASCII symbols to integers instead. R_ADC_Stop(); uart2Status = R_UART2_Send(uart2TxBuf, transmit_count); } else if(uart2RxBuf[0] == 't') transmit = !transmit; else uart2TxBuf[0] = uart2RxBuf[0]; // Prime UART2 Rx uart2Status = R_UART2_Receive(uart2RxBuf, 1); } //If a character has been transmitted if (uart2TxFlag) { // End of UART2 transmit uart2TxFlag = 0U; // clear tx flag } } R_UART2_Stop(); R_TAU0_Channel0_Stop(); //R_ADC_Stop(); /* End user code. Do not edit comment generated here */ }