www.pudn.com > RL78_G14-Demo.rar > r_cg_serial_user.c, change:2013-04-25,size:5892b


/*********************************************************************************************************************** 
* 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 Renesas Electronics Corporation. All rights reserved. 
***********************************************************************************************************************/ 
 
/*********************************************************************************************************************** 
* File Name    : r_cg_serial_user.c 
* Version      : CodeGenerator for RL78/G14 V1.01.01 [11 Oct 2011] 
* Device(s)    : R5F104LE 
* Tool-Chain   : CA78K0R 
* Description  : This file implements device driver for Serial module. 
* Creation Date: 2013/4/1 
***********************************************************************************************************************/ 
 
/*********************************************************************************************************************** 
Pragma directive 
***********************************************************************************************************************/ 
#pragma interrupt INTST0 r_uart0_interrupt_send 
#pragma interrupt INTSR0 r_uart0_interrupt_receive 
#pragma interrupt INTSRE0 r_uart0_interrupt_error 
/* Start user code for pragma. Do not edit comment generated here */ 
/* End user code. Do not edit comment generated here */ 
 
/*********************************************************************************************************************** 
Includes 
***********************************************************************************************************************/ 
#include "r_cg_macrodriver.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" 
 
/*********************************************************************************************************************** 
Global variables and functions 
***********************************************************************************************************************/ 
extern volatile uint8_t * gp_uart0_tx_address;         /* uart0 send buffer address */ 
extern volatile uint16_t  g_uart0_tx_count;            /* uart0 send data number */ 
extern volatile uint8_t * gp_uart0_rx_address;         /* uart0 receive buffer address */ 
extern volatile uint16_t  g_uart0_rx_count;            /* uart0 receive data number */ 
extern volatile uint16_t  g_uart0_rx_length;           /* uart0 receive data length */ 
/* Start user code for global. Do not edit comment generated here */ 
/* End user code. Do not edit comment generated here */ 
 
/*********************************************************************************************************************** 
* Function Name: r_uart0_interrupt_receive 
* Description  : This function is INTSR0 interrupt service routine. 
* Arguments    : None 
* Return Value : None 
***********************************************************************************************************************/ 
__interrupt static void r_uart0_interrupt_receive(void) 
{ 
    uint8_t rx_data; 
 
    rx_data = RXD0; 
 
    if (g_uart0_rx_length > g_uart0_rx_count) 
    { 
        *gp_uart0_rx_address = rx_data; 
        gp_uart0_rx_address++; 
        g_uart0_rx_count++; 
    } 
} 
 
/*********************************************************************************************************************** 
* Function Name: r_uart0_interrupt_error 
* Description  : This function is INTSRE0 interrupt service routine. 
* Arguments    : None 
* Return Value : None 
***********************************************************************************************************************/ 
__interrupt static void r_uart0_interrupt_error(void) 
{ 
    uint8_t err_type; 
 
    *gp_uart0_rx_address = RXD0; 
} 
 
/*********************************************************************************************************************** 
* Function Name: r_uart0_interrupt_send 
* Description  : This function is INTST0 interrupt service routine. 
* Arguments    : None 
* Return Value : None 
***********************************************************************************************************************/ 
__interrupt static void r_uart0_interrupt_send(void) 
{ 
    if (g_uart0_tx_count > 0U) 
    { 
        TXD0 = *gp_uart0_tx_address; 
        gp_uart0_tx_address++; 
        g_uart0_tx_count--; 
    } 
} 
 
/* Start user code for adding. Do not edit comment generated here */ 
/* End user code. Do not edit comment generated here */