/*********************************************************************************************************************** * DISCLAIMER * This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. * No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all * applicable laws, including copyright laws. * THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED * OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY * LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT, * INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR * ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. * Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability * of this software. By using this software, you agree to the additional terms and conditions found by accessing the * following link: * http://www.renesas.com/disclaimer * * Copyright (C) 2011, 2018 Renesas Electronics Corporation. All rights reserved. ***********************************************************************************************************************/ /*********************************************************************************************************************** * File Name : r_main.c * Version : CodeGenerator for RL78/G14 V2.05.02.05 [30 May 2018] * Device(s) : R5F104PJ * Tool-Chain : CCRL * Description : This file implements main function. * Creation Date: 2018/12/25 ***********************************************************************************************************************/ /*********************************************************************************************************************** Includes ***********************************************************************************************************************/ #include "r_cg_macrodriver.h" #include "r_cg_cgc.h" #include "r_cg_serial.h" #include "r_cg_adc.h" #include "r_cg_timer.h" /* Start user code for include. Do not edit comment generated here */ #include #include /* End user code. Do not edit comment generated here */ #include "r_cg_userdefine.h" /*********************************************************************************************************************** Pragma directive ***********************************************************************************************************************/ /* Start user code for pragma. Do not edit comment generated here */ #define PI_NORMAL 0 #define PI_FAILER 1 /* End user code. Do not edit comment generated here */ /*********************************************************************************************************************** Global variables and functions ***********************************************************************************************************************/ /* Start user code for global. Do not edit comment generated here */ void test_uart0(void); void put_message0(uint8_t *); void uart0_dump(unsigned char); void uart0_dump_b(unsigned char); void TMR0_wait(unsigned int); void TMR0_M_wait(unsigned int); void ADC_sample(void); void Program_main(void); void UART_POSE_KEY(void); /* End user code. Do not edit comment generated here */ void R_MAIN_UserInit(void); /*********************************************************************************************************************** * 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 */ while (1U) { ADC_sample() ; } /* End user code. Do not edit comment generated here */ } /*********************************************************************************************************************** * Function Name: R_MAIN_UserInit * Description : This function adds user code before implementing main function. * Arguments : None * Return Value : None ***********************************************************************************************************************/ void R_MAIN_UserInit(void) { /* Start user code. Do not edit comment generated here */ EI(); R_SAU0_Create(); R_UART0_Start(); R_ADC_Create(); put_message0((uint8_t *)"RL78/G14 (Tx0) Connected OK >"); /* End user code. Do not edit comment generated here */ } /* Start user code for adding. Do not edit comment generated here */ /*********************************************************************************************************************** * Function Name: ADC_sample * Description : This function returns the voltage from the AD converter . * Arguments : * Return Value : None ***********************************************************************************************************************/ void ADC_sample(void) { uint8_t ad_data ; uint16_t buffer ; R_ADC_Start(); TMR0_wait(10); while ( ADCS != 0); R_ADC_Get_Result((uint16_t * )&buffer); ad_data = (uint8_t)((uint16_t)(buffer >> 2U)); uart0_dump(ad_data); UART_POSE_KEY(); R_ADC_Stop(); } /*********************************************************************************************************************** * Function Name: UART_POSE_KEY * Description : This function uses the UART pause function . * Arguments : * Return Value : None ***********************************************************************************************************************/ void UART_POSE_KEY(void) { uint8_t rtx_buf = 0x00; while((SSR01 & 0x0040)== 0){ //Check TSF01 (Recive) SSRmn(m:unit number[0,1]/n:channel number[0,1,2,3]) R_UART0_Receive(&rtx_buf,(uint16_t)1); } } /*********************************************************************************************************************** * Function Name: TMR0_M_wait * Description : This function waits for the specified time using the TIMER0 function . * Arguments : Input in_loop ( n *[uS]) * Return Value : None ***********************************************************************************************************************/ void TMR0_M_wait(unsigned int in_lp) { for ( ; in_lp > 0 ; in_lp-- ) { TMR0_wait((unsigned int)1000); } } /*********************************************************************************************************************** * Function Name: TMR0_wait * Description : This function waits for the specified time using the TIMER0 function . * Arguments : Input in_loop ( n *[uS]) * Return Value : None ***********************************************************************************************************************/ void TMR0_wait(unsigned int in_lp) { R_TAU0_Channel0_Start(); for ( ; in_lp > 0 ; in_lp-- ) { while ( TMIF00 == 0 ) { NOP(); } TMIF00 = 0; } R_TAU0_Channel0_Stop(); } /*********************************************************************************************************************** * Function Name: uart0_dump * Description : This function converts the character in hex code and outputs it to UART0 * Arguments : Input char * Return Value : None ***********************************************************************************************************************/ void uart0_dump(unsigned char in_c) { int in_i; char out_line[10]; in_i = (int)in_c; // sprintf(out_line,"[%x(%c)]",in_i,in_i); sprintf(out_line,"[%2.2x]",in_i); put_message0((uint8_t *)out_line); } /*********************************************************************************************************************** * Function Name: uart0_dump_b * Description : This function converts the character in binary code and outputs it to UART0 * Arguments : Input char * Return Value : None ***********************************************************************************************************************/ void uart0_dump_b(unsigned char in_c) { unsigned char i; unsigned char b[9]; char out_line[2]; unsigned char lp; for (i = 0; in_c > 0; i++) { b[i] = in_c % 2; in_c = in_c / 2; } put_message0((uint8_t *)"("); for (lp = 0; lp < ( 8 - i ) ; lp++) { put_message0((uint8_t *)"0"); } while (i > 0){ sprintf(out_line,"%1.1d", b[--i]); put_message0((uint8_t *)out_line); } put_message0((uint8_t *)")"); } /*********************************************************************************************************************** * Function Name: test_uart0 * Description : This function is a sample program that echo back to UART0. * Arguments : None * Return Value : None ***********************************************************************************************************************/ void test_uart0(void) { uint8_t rtx_buf = 0x00; // ******************* // 1.Start UART0 // ******************* R_UART0_Start(); put_message0((uint8_t *)"RL78/G14 (Tx0) Connected OK >"); // ******************* // 2.Main Process // ******************* while (1U) { while((SSR01 & 0x0040)== 0){ //Check TSF01 (Recive) SSRmn(m:unit number[0,1]/n:channel number[0,1,2,3]) R_UART0_Receive(&rtx_buf,(uint16_t)1); } while((SSR01 & 0x0040)!= 0); //Check TSF01 (Recive) SSRmn(m:unit number[0,1]/n:channel number[0,1,2,3]) while((SSR00 & 0x0040)!= 0); //Check TSF00 (Send) SSRmn(m:unit number[0,1]/n:channel number[0,1,2,3]) R_UART0_Send(&rtx_buf,(uint16_t)1); } } /*********************************************************************************************************************** * Function Name: put_message0 * Description : This function is a sample program that outputs a message to UART0. * Arguments : None * Return Value : None ***********************************************************************************************************************/ void put_message0(uint8_t *message) { while(*message != 0x00){ while((SSR00 & 0x0040)!= 0); //Check TSF02 (Send) SSRmn(m:unit number[0,1]/n:channel number[0,1,2,3]) R_UART0_Send((uint8_t *)message,(uint16_t)1); message++; } } /* End user code. Do not edit comment generated here */