HWBS/ECU_APP/r_cg_timer_user.c
2023-08-21 16:48:00 +08:00

198 lines
6.7 KiB
C
Raw Blame History

/***********************************************************************************************************************
* 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) 2012, 2021 Renesas Electronics Corporation. All rights reserved.
***********************************************************************************************************************/
/***********************************************************************************************************************
* File Name : r_cg_timer_user.c
* Version : CodeGenerator for RL78/F13 V2.03.07.02 [08 Nov 2021]
* Device(s) : R5F10BBG
* Tool-Chain : CCRL
* Description : This file implements device driver for TAU module.
* Creation Date: 2023-08-18
***********************************************************************************************************************/
/***********************************************************************************************************************
Includes
***********************************************************************************************************************/
#include "r_cg_macrodriver.h"
#include "r_cg_timer.h"
/* Start user code for include. Do not edit comment generated here */
#include "appTask.h"
#include "can_user.h"
#include "CanNw.h"
/* End user code. Do not edit comment generated here */
#include "r_cg_userdefine.h"
/***********************************************************************************************************************
Pragma directive
***********************************************************************************************************************/
#pragma interrupt r_tau0_channel0_interrupt(vect=INTTM00)
#pragma interrupt r_tau0_channel1_interrupt(vect=INTTM01)
/* Start user code for pragma. Do not edit comment generated here */
#if DEBUG
#pragma interrupt r_tau0_channel0_interrupt(vect = INTTM00)
#pragma interrupt r_tau0_channel1_interrupt(vect = INTTM01)
#endif
/* End user code. Do not edit comment generated here */
/***********************************************************************************************************************
Global variables and functions
***********************************************************************************************************************/
/* Start user code for global. Do not edit comment generated here */
unsigned char Timer_Interrupt;
unsigned char iictimeout;
/* End user code. Do not edit comment generated here */
/***********************************************************************************************************************
* Function Name: r_tau0_channel0_interrupt
* Description : This function is INTTM00 interrupt service routine.
* Arguments : None
* Return Value : None
***********************************************************************************************************************/
static void __near r_tau0_channel0_interrupt(void)
{
/* Start user code. Do not edit comment generated here */
Timer_Interrupt=1;
Timer_Pro();
/* End user code. Do not edit comment generated here */
}
/***********************************************************************************************************************
* Function Name: r_tau0_channel1_interrupt
* Description : This function is INTTM01 interrupt service routine.
* Arguments : None
* Return Value : None
***********************************************************************************************************************/
static void __near r_tau0_channel1_interrupt(void)
{
/* Start user code. Do not edit comment generated here */
/* End user code. Do not edit comment generated here */
}
/* Start user code for adding. Do not edit comment generated here */
void Count_Down_Timer_8Bit(unsigned char *Target_Timer)
{
if(*Target_Timer>0)
(*Target_Timer)--;
}
void Count_Down_Timer_16Bit(unsigned int *Target_Timer)
{
if(*Target_Timer>0)
(*Target_Timer)--;
}
void AutoLoad_CountUp_Timer_8Bit(unsigned char *Target_Timer,unsigned int Time_Limit,
unsigned char *Count,unsigned char Count_Limit)
{
if(*Target_Timer!=Time_Limit)
(*Target_Timer)++;
else
{
(*Target_Timer)=0;
if(*Count!=Count_Limit)
(*Count)++;
else
{
*Count=0;
}
}
}
void AutoLoad_CountUp_Timer_16Bit(unsigned int *Target_Timer,unsigned int Time_Limit,
unsigned char *Count,unsigned char Count_Limit)
{
if(*Target_Timer!=Time_Limit)
(*Target_Timer)++;
else
{
(*Target_Timer)=0;
if(*Count!=Count_Limit)
(*Count)++;
else
{
*Count=0;
}
}
}
void Timer_Pro(void)
{
static unsigned int Timer_1ms_tick_count;
Count_Down_Timer_16Bit(&air_req_timer);
Count_Down_Timer_8Bit(&iictimeout);
Count_Down_Timer_16Bit(&CAN_LostCount);
Count_Down_Timer_16Bit(&uiNwPduCycCnt);
Count_Down_Timer_16Bit(&DiagCnt);
uiNwTimCnt++;
uiNwToutCnt++; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
if(uiNwRMSCnt > 0)
uiNwRMSCnt--;
if(uiNwLocWkpOffCnt > 0)
{
uiNwLocWkpOffCnt--;
}
if(uiBusOffCnt > 0)
uiBusOffCnt--;
Timer_1ms_tick_count++;
if(Timer_1ms_tick_count%5==0)
{
Timer_5ms_flag=1;
}
if(Timer_1ms_tick_count%10==0)
{
Timer_10ms_flag=1;
}
if(Timer_1ms_tick_count%20==0)
{
Timer_20ms_flag=1;
}
if(Timer_1ms_tick_count%50==0)
{
Timer_50ms_flag=1;
}
if(Timer_1ms_tick_count%1000==0)
{
Timer_1000ms_flag = 1;
}
if(Timer_1ms_tick_count>=5000)
{
Timer_1ms_tick_count=0;
}
Can_1ms_count_alive++;
if(BusOff_Detect_delay_count>0)
{
BusOff_Detect_delay_count--;
}
if(Timer_Interrupt)
{
Timer_Interrupt=0;
Timer_1ms_flag=1;
}
}
/* End user code. Do not edit comment generated here */