text: /***********************************************************************************************************************
  * 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_it_user.c
  * Version      : Applilet3 for RL78/G14 V1.01.01 [11 Oct 2011]
  * Device(s)    : R5F104PJ
  * Tool-Chain   : IAR Systems iccrl78
  * Description  : This file implements device driver for IT module.
  * Creation Date: 7/3/2012
  ***********************************************************************************************************************/
  
  /***********************************************************************************************************************
  Includes
  ***********************************************************************************************************************/
  #include "r_cg_macrodriver.h"
  #include "r_cg_it.h"
  /* Start user code for include. Do not edit comment generated here */
  volatile int G_100usTimer = 0;   // 100 microseconds counter
  volatile int G_msTimer = 0;   // millisecond counter
  /* End user code. Do not edit comment generated here */
  #include "r_cg_userdefine.h"
  
  /***********************************************************************************************************************
  Global variables and functions
  ***********************************************************************************************************************/
  /* Start user code for global. Do not edit comment generated here */
  /* End user code. Do not edit comment generated here */
  
  /***********************************************************************************************************************
  * Function Name: r_it_interrupt
  * Description  : This function is INTIT interrupt service routine.
  * Arguments    : None
  * Return Value : None
  ***********************************************************************************************************************/
  #pragma vector = INTIT_vect
  __interrupt static void r_it_interrupt(void)
  {
      /* Start user code. Do not edit comment generated here */
      G_100usTimer++;
      if((G_100usTimer % 10) == 0)
          G_msTimer++;
      /* End user code. Do not edit comment generated here */
  }
  
  /* Start user code for adding. Do not edit comment generated here */
  
  /*---------------------------------------------------------------------------*
   * delay_ms
   *---------------------------------------------------------------------------
   * Description:
   *      Uses the interval timer to delay so many milliseconds
   * Inputs:
   *      aCount - number of 100us intervals to delay
   *---------------------------------------------------------------------------*/
  void delay_100us(int aCount)
  {
      G_100usTimer = 0;
      R_IT_Start();
      while(G_100usTimer < aCount);
      R_IT_Stop();
  }
  
  /*---------------------------------------------------------------------------*
   * delay_ms
   *---------------------------------------------------------------------------
   * Description:
   *      Uses the interval timer to delay so many milliseconds
   * Inputs:
   *      aTimeMS - milliseconds to delay
   *---------------------------------------------------------------------------*/
  void delay_ms(int aTimeMS)
  {
      G_msTimer = 0;
      R_IT_Start();
      while(G_msTimer < aTimeMS);
      R_IT_Stop();
  }
  
  /* End user code. Do not edit comment generated here */
  