/*********************************************************************************************************************** * 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/11/01 ***********************************************************************************************************************/ /*********************************************************************************************************************** Includes ***********************************************************************************************************************/ #include "r_cg_macrodriver.h" #include "r_cg_cgc.h" #include "r_cg_serial.h" /* Start user code for include. Do not edit comment generated here */ /* 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 */ /* End user code. Do not edit comment generated here */ /*********************************************************************************************************************** Global variables and functions ***********************************************************************************************************************/ /* Start user code for global. Do not edit comment generated here */ /* End user code. Do not edit comment generated here */ void R_MAIN_UserInit(void); void test_uart0(void); void test_uart1(void); void test_uart2(void); void test_uart3(void); void put_message0(uint8_t *); void put_message1(uint8_t *); void put_message2(uint8_t *); void put_message3(uint8_t *); /*********************************************************************************************************************** * 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) { test_uart0() ; // test_uart1() ; // test_uart2() ; // test_uart3() ; } /* End user code. Do not edit comment generated here */ } /*********************************************************************************************************************** * 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++; } } /*********************************************************************************************************************** * Function Name: test_uart1 * Description : This function is a sample program that echo back to UART1. * Arguments : None * Return Value : None ***********************************************************************************************************************/ void test_uart1(void) { uint8_t rtx_buf = 0x00; // ******************* // 1.Start UART1 // ******************* R_UART1_Start(); put_message1((uint8_t *)"RL78/G14 (Tx1) Connected OK >"); // ******************* // 2.Main Process // ******************* while (1U) { while((SSR03 & 0x0040)== 0){ //Check TSF03 (Recive) SSRmn(m:unit number[0,1]/n:channel number[0,1,2,3]) R_UART1_Receive(&rtx_buf,(uint16_t)1); } while((SSR03 & 0x0040)!= 0); //Check TSF03 (Recive) SSRmn(m:unit number[0,1]/n:channel number[0,1,2,3]) while((SSR02 & 0x0040)!= 0); //Check TSF02 (Send) SSRmn(m:unit number[0,1]/n:channel number[0,1,2,3]) R_UART1_Send(&rtx_buf,(uint16_t)1); } } /*********************************************************************************************************************** * Function Name: put_message1 * Description : This function is a sample program that outputs a message to UART1. * Arguments : None * Return Value : None ***********************************************************************************************************************/ void put_message1(uint8_t *message) { while(*message != 0x00){ while((SSR02 & 0x0040)!= 0); //Check TSF02 (Send) SSRmn(m:unit number[0,1]/n:channel number[0,1,2,3]) R_UART1_Send((uint8_t *)message,(uint16_t)1); message++; } } /*********************************************************************************************************************** * Function Name: test_uart2 * Description : This function is a sample program that echo back to UART2. * Arguments : None * Return Value : None ***********************************************************************************************************************/ void test_uart2(void) { uint8_t rtx_buf = 0x00; // ******************* // 1.Start UART2 // ******************* R_UART2_Start(); put_message2((uint8_t *)"RL78/G14 (Tx2) Connected OK >"); // ******************* // 2.Main Process // ******************* while (1U) { while((SSR11 & 0x0040)== 0){ //Check TSF11 (Recive) SSRmn(m:unit number[0,1]/n:channel number[0,1,2,3]) R_UART2_Receive(&rtx_buf,(uint16_t)1); } while((SSR11 & 0x0040)!= 0); //Check TSF11 (Recive) SSRmn(m:unit number[0,1]/n:channel number[0,1,2,3]) while((SSR10 & 0x0040)!= 0); //Check TSF10 (Send) SSRmn(m:unit number[0,1]/n:channel number[0,1,2,3]) R_UART2_Send(&rtx_buf,(uint16_t)1); } } /*********************************************************************************************************************** * Function Name: put_message2 * Description : This function is a sample program that outputs a message to UART2. * Arguments : None * Return Value : None ***********************************************************************************************************************/ void put_message2(uint8_t *message) { while(*message != 0x00){ while((SSR10 & 0x0040)!= 0); //Check TSF10 (Send) SSRmn(m:unit number[0,1]/n:channel number[0,1,2,3]) R_UART2_Send((uint8_t *)message,(uint16_t)1); message++; } } /*********************************************************************************************************************** * Function Name: test_uart3 * Description : This function is a sample program that echo back to UART3. * Arguments : None * Return Value : None ***********************************************************************************************************************/ void test_uart3(void) { uint8_t rtx_buf = 0x00; // ******************* // 1.Start UART3 // ******************* R_UART3_Start(); put_message3((uint8_t *)"RL78/G14 (Tx3) Connected OK >"); // ******************* // 2.Main Process // ******************* while (1U) { while((SSR13 & 0x0040)== 0){ //Check TSF13 (Recive) SSRmn(m:unit number[0,1]/n:channel number[0,1,2,3]) R_UART3_Receive(&rtx_buf,(uint16_t)1); } while((SSR13 & 0x0040)!= 0); //Check TSF13 (Recive) SSRmn(m:unit number[0,1]/n:channel number[0,1,2,3]) while((SSR12 & 0x0040)!= 0); //Check TSF12 (Send) SSRmn(m:unit number[0,1]/n:channel number[0,1,2,3]) R_UART3_Send(&rtx_buf,(uint16_t)1); } } /*********************************************************************************************************************** * Function Name: put_message3 * Description : This function is a sample program that outputs a message to UART3. * Arguments : None * Return Value : None ***********************************************************************************************************************/ void put_message3(uint8_t *message) { while(*message != 0x00){ while((SSR12 & 0x0040)!= 0); //Check TSF12 (Send) SSRmn(m:unit number[0,1]/n:channel number[0,1,2,3]) R_UART3_Send((uint8_t *)message,(uint16_t)1); message++; } } /*********************************************************************************************************************** * 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(); /* End user code. Do not edit comment generated here */ } /* Start user code for adding. Do not edit comment generated here */ /* End user code. Do not edit comment generated here */