2023-08-21 16:48:00 +08:00
|
|
|
|
/***********************************************************************************************************************
|
|
|
|
|
* 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.
|
2023-08-22 14:04:32 +08:00
|
|
|
|
* Creation Date: 2023-08-22
|
2023-08-21 16:48:00 +08:00
|
|
|
|
***********************************************************************************************************************/
|
|
|
|
|
|
|
|
|
|
/***********************************************************************************************************************
|
|
|
|
|
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
|
|
|
|
|
***********************************************************************************************************************/
|
2023-08-22 14:04:32 +08:00
|
|
|
|
//#pragma interrupt r_tau0_channel0_interrupt(vect=INTTM00)
|
|
|
|
|
//#pragma interrupt r_tau0_channel1_interrupt(vect=INTTM01)
|
|
|
|
|
//#pragma interrupt r_tau0_channel2_interrupt(vect=INTTM02)
|
2023-08-21 16:48:00 +08:00
|
|
|
|
/* 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
|
|
|
|
|
***********************************************************************************************************************/
|
2023-08-22 14:04:32 +08:00
|
|
|
|
void __near r_tau0_channel0_interrupt(void)
|
2023-08-21 16:48:00 +08:00
|
|
|
|
{
|
|
|
|
|
/* 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
|
|
|
|
|
***********************************************************************************************************************/
|
2023-08-22 14:04:32 +08:00
|
|
|
|
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 */
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/***********************************************************************************************************************
|
|
|
|
|
* Function Name: r_tau0_channel2_interrupt
|
|
|
|
|
* Description : This function is INTTM02 interrupt service routine.
|
|
|
|
|
* Arguments : None
|
|
|
|
|
* Return Value : None
|
|
|
|
|
***********************************************************************************************************************/
|
|
|
|
|
void __near r_tau0_channel2_interrupt(void)
|
2023-08-21 16:48:00 +08:00
|
|
|
|
{
|
|
|
|
|
/* 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 */
|