198 lines
6.7 KiB
C
198 lines
6.7 KiB
C
/***********************************************************************************************************************
|
||
* 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: 2024-05-23
|
||
***********************************************************************************************************************/
|
||
|
||
/***********************************************************************************************************************
|
||
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
|
||
***********************************************************************************************************************/
|
||
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
|
||
***********************************************************************************************************************/
|
||
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><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 */
|