/******************************************************************************* * 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 * (c) 2014 Renesas Electronics Corporation All rights reserved. *******************************************************************************/ /****************************************************************************** * File Name : r_interrupt.c * Version : 1.0 * Device(s) : R7F701007 RH850/F1L * Tool-Chain : IAR Embedded Workbench 1.30.1 * Description : This file is a sample of the interrupt. * Operation : - ******************************************************************************* ******************************************************************************* * History : DD.MM.YYYY Version Description * : 20.03.2014 1.00 First Release ******************************************************************************/ /****************************************************************************** Includes ******************************************************************************/ #include "r_typedefs.h" #include "iodefine.h" #ifdef __ghs__ #include "device.h" #endif #ifdef __IAR_SYSTEMS_ICC__ #include #endif /****************************************************************************** Imported global variables and functions (from other files) ******************************************************************************/ /****************************************************************************** Macro definitions ******************************************************************************/ /****************************************************************************** Exported global variables and functions (to be accessed by other files) ******************************************************************************/ void INTTAUJ0I0_interrupt( void ); void INTTAUJ0I1_interrupt( void ); void INTTAUJ0I2_interrupt( void ); /****************************************************************************** Private global variables and functions ******************************************************************************/ #if !defined(__IAR_SYSTEMS_ICC__) && !defined(__ghs__) #pragma section text ".ram_text" #endif #ifdef __ghs__ #pragma ghs startdata #pragma ghs section text= ".ram_text" #endif #ifdef __IAR_SYSTEMS_ICC__ #pragma dataseg = ".ram_text" #endif /****************************************************************************** * Function Name : void INTTAUJ0I0_interrupt( void ) * Description : This function is INTTAUJ0I0 interrupt processing. (Table Reference) * Argument : none * Return Value : none ******************************************************************************/ #if !defined(__IAR_SYSTEMS_ICC__) && !defined(__ghs__) #pragma interrupt INTTAUJ0I0_interrupt( enable=false , channel=72 , callt=false , fpu=false ) #endif void INTTAUJ0I0_interrupt( void ) { TAUJ0.TT = 0x01U; /* TAUJ ch.0 stop */ } /****************************************************************************** * Function Name : void INTTAUJ0I1_interrupt( void ) * Description : This function is INTTAUJ0I1 interrupt processing. (Table Reference) * Argument : none * Return Value : none ******************************************************************************/ #if !defined(__IAR_SYSTEMS_ICC__) && !defined(__ghs__) #pragma interrupt INTTAUJ0I1_interrupt( enable=false , channel=73 , callt=false , fpu=false ) #endif void INTTAUJ0I1_interrupt( void ) { P0 &= 0xdFFFU; /* P0_13:CN2C-71pin */ P0 &= 0xbFFFU; /* P0_14:CN2C-72pin */ TAUJ0.TT = 0x06U; /* TAUJ ch.1 , ch.2 stop */ /* Shift to DEEPSTOP mode */ do { PROTCMD0 = 0x000000A5UL; /* Protection release the STBC0PSC register. */ STBC0PSC = 0x00000002UL; STBC0PSC = ~0x00000002UL; STBC0PSC = 0x00000002UL; } while ( PROTS0 != 0x00000000UL ); while ( STBC0PSC == 0x00000002UL ) { /* Waiting for shift to DeepStop mode. */ } while ( 1U ) { /* Waiting for shift to DeepStop mode. */ } } /****************************************************************************** * Function Name : void INTTAUJ0I2_interrupt( void ) * Description : This function is INTTAUJ0I2 interrupt processing. (Table Reference) * Argument : none * Return Value : none ******************************************************************************/ #if !defined(__IAR_SYSTEMS_ICC__) && !defined(__ghs__) #pragma interrupt INTTAUJ0I2_interrupt( enable=false , channel=74 , callt=false , fpu=false ) #endif void INTTAUJ0I2_interrupt( void ) { #if !defined(__IAR_SYSTEMS_ICC__) __nop(); #endif #ifdef __IAR_SYSTEMS_ICC__ __asm( "nop"); #endif } #ifdef __ghs__ __interrupt void INTTAUJ0I0(void) { INTTAUJ0I0_interrupt(); } __interrupt void INTTAUJ0I1(void) { INTTAUJ0I1_interrupt(); } __interrupt void INTTAUJ0I2(void) { INTTAUJ0I2_interrupt(); } #endif #ifdef __IAR_SYSTEMS_ICC__ #pragma vector = 0x48 __interrupt void INTTAUJ0I0(void) { INTTAUJ0I0_interrupt(); } #pragma vector = 0x49 __interrupt void INTTAUJ0I1(void) { INTTAUJ0I1_interrupt(); } #pragma vector = 0x4A __interrupt void INTTAUJ0I2(void) { INTTAUJ0I2_interrupt(); } #endif #if !defined(__IAR_SYSTEMS_ICC__) && !defined(__ghs__) #pragma section default #endif #ifdef __ghs__ #pragma ghs section text= default #pragma ghs enddata #endif #ifdef __IAR_SYSTEMS_ICC__ #pragma dataseg = default #endif