44 changed files with 16297 additions and 8612 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
@ -0,0 +1,157 @@ |
|||||
|
/***********************************************************************************************************************
|
||||
|
* 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.c |
||||
|
* Version : CodeGenerator for RL78/F14 V2.03.07.02 [08 Nov 2021] |
||||
|
* Device(s) : R5F10PPJ |
||||
|
* Tool-Chain : CCRL |
||||
|
* Description : This file implements device driver for TAU module. |
||||
|
* Creation Date: 2026-08-03 |
||||
|
***********************************************************************************************************************/ |
||||
|
|
||||
|
/***********************************************************************************************************************
|
||||
|
Includes |
||||
|
***********************************************************************************************************************/ |
||||
|
#include "r_cg_macrodriver.h" |
||||
|
#include "r_cg_timer.h" |
||||
|
/* Start user code for include. Do not edit comment generated here */ |
||||
|
/* End user code. Do not edit comment generated here */ |
||||
|
#include "r_cg_userdefine.h" |
||||
|
|
||||
|
/***********************************************************************************************************************
|
||||
|
Pragma directive |
||||
|
***********************************************************************************************************************/ |
||||
|
/* Start user code for pragma. Do not edit comment generated here */ |
||||
|
/* End user code. Do not edit comment generated here */ |
||||
|
|
||||
|
/***********************************************************************************************************************
|
||||
|
Global variables and functions |
||||
|
***********************************************************************************************************************/ |
||||
|
/* For TAU1_ch5 pulse measurement */ |
||||
|
extern volatile uint32_t g_tau1_ch5_width; |
||||
|
/* Start user code for global. Do not edit comment generated here */ |
||||
|
/* End user code. Do not edit comment generated here */ |
||||
|
|
||||
|
/***********************************************************************************************************************
|
||||
|
* Function Name: R_TAU1_Create |
||||
|
* Description : This function initializes the TAU1 module. |
||||
|
* Arguments : None |
||||
|
* Return Value : None |
||||
|
***********************************************************************************************************************/ |
||||
|
void R_TAU1_Create(void) |
||||
|
{ |
||||
|
TAU1EN = 1U; /* supplies input clock */ |
||||
|
TPS1 = _0000_TAU_CKM0_FCLK_0 | _0000_TAU_CKM1_FCLK_0 | _0000_TAU_CKM2_FCLK_0 | _0000_TAU_CKM3_FCLK_0; |
||||
|
/* Stop all channels */ |
||||
|
TT1 = _0001_TAU_CH0_STOP_TRG_ON | _0002_TAU_CH1_STOP_TRG_ON | _0004_TAU_CH2_STOP_TRG_ON | |
||||
|
_0008_TAU_CH3_STOP_TRG_ON | _0010_TAU_CH4_STOP_TRG_ON | _0020_TAU_CH5_STOP_TRG_ON | |
||||
|
_0040_TAU_CH6_STOP_TRG_ON | _0080_TAU_CH7_STOP_TRG_ON | _0200_TAU_CH1_H8_STOP_TRG_ON | |
||||
|
_0800_TAU_CH3_H8_STOP_TRG_ON; |
||||
|
PWMDLY2 = _0000_TAU_PWM_DELAY_CLEAR; /* clear PWM output delay */ |
||||
|
/* Mask channel 0 interrupt */ |
||||
|
TMMK10 = 1U; /* disable INTTM10 interrupt */ |
||||
|
TMIF10 = 0U; /* clear INTTM10 interrupt flag */ |
||||
|
/* Mask channel 1 interrupt */ |
||||
|
TMMK11 = 1U; /* disable INTTM11 interrupt */ |
||||
|
TMIF11 = 0U; /* clear INTTM11 interrupt flag */ |
||||
|
/* Mask channel 1 higher 8 bits interrupt */ |
||||
|
TMMK11H = 1U; /* disable INTTM11H interrupt */ |
||||
|
TMIF11H = 0U; /* clear INTTM11H interrupt flag */ |
||||
|
/* Mask channel 2 interrupt */ |
||||
|
TMMK12 = 1U; /* disable INTTM12 interrupt */ |
||||
|
TMIF12 = 0U; /* clear INTTM12 interrupt flag */ |
||||
|
/* Mask channel 3 interrupt */ |
||||
|
TMMK13 = 1U; /* disable INTTM13 interrupt */ |
||||
|
TMIF13 = 0U; /* clear INTTM13 interrupt flag */ |
||||
|
/* Mask channel 3 higher 8 bits interrupt */ |
||||
|
TMMK13H = 1U; /* disable INTTM13H interrupt */ |
||||
|
TMIF13H = 0U; /* clear INTTM13H interrupt flag */ |
||||
|
/* Mask channel 4 interrupt */ |
||||
|
TMMK14 = 1U; /* disable INTTM14 interrupt */ |
||||
|
TMIF14 = 0U; /* clear INTTM14 interrupt flag */ |
||||
|
/* Mask channel 5 interrupt */ |
||||
|
TMMK15 = 1U; /* disable INTTM15 interrupt */ |
||||
|
TMIF15 = 0U; /* clear INTTM15 interrupt flag */ |
||||
|
/* Mask channel 6 interrupt */ |
||||
|
TMMK16 = 1U; /* disable INTTM16 interrupt */ |
||||
|
TMIF16 = 0U; /* clear INTTM16 interrupt flag */ |
||||
|
/* Mask channel 7 interrupt */ |
||||
|
TMMK17 = 1U; /* disable INTTM17 interrupt */ |
||||
|
TMIF17 = 0U; /* clear INTTM17 interrupt flag */ |
||||
|
/* Set INTTM15 low priority */ |
||||
|
TMPR115 = 1U; |
||||
|
TMPR015 = 1U; |
||||
|
/* Channel 5 is used to measure input pulse interval */ |
||||
|
TMR15 = _0000_TAU_CLOCK_SELECT_CKM0 | _0000_TAU_CLOCK_MODE_CKS | _0000_TAU_COMBINATION_SLAVE | |
||||
|
_0100_TAU_TRIGGER_TIMN_VALID | _0080_TAU_TIMN_EDGE_BOTH_LOW | _0004_TAU_MODE_CAPTURE | |
||||
|
_0000_TAU_START_INT_UNUSED; |
||||
|
TOM1 &= ~_0020_TAU_CH5_OUTPUT_COMBIN; |
||||
|
TOL1 &= ~_0020_TAU_CH5_OUTPUT_LEVEL_L; |
||||
|
TO1 &= ~_0020_TAU_CH5_OUTPUT_VALUE_1; |
||||
|
TOE1 &= ~_0020_TAU_CH5_OUTPUT_ENABLE; |
||||
|
NFEN2 &= (uint8_t)~_20_TAU_CH5_NOISE_ON; /* disable using noise filter of TI15 pin input signal */ |
||||
|
/* Set TI15 pin */ |
||||
|
PIM7 &= 0xFEU; |
||||
|
PMC7 &= 0xFEU; |
||||
|
PM7 |= 0x01U; |
||||
|
} |
||||
|
|
||||
|
/***********************************************************************************************************************
|
||||
|
* Function Name: R_TAU1_Channel5_Start |
||||
|
* Description : This function starts TAU1 channel 5 counter. |
||||
|
* Arguments : None |
||||
|
* Return Value : None |
||||
|
***********************************************************************************************************************/ |
||||
|
void R_TAU1_Channel5_Start(void) |
||||
|
{ |
||||
|
TMIF15 = 0U; /* clear INTTM15 interrupt flag */ |
||||
|
TMMK15 = 0U; /* enable INTTM15 interrupt */ |
||||
|
TS1 |= _0020_TAU_CH5_START_TRG_ON; |
||||
|
} |
||||
|
|
||||
|
/***********************************************************************************************************************
|
||||
|
* Function Name: R_TAU1_Channel5_Stop |
||||
|
* Description : This function stops TAU1 channel 5 counter. |
||||
|
* Arguments : None |
||||
|
* Return Value : None |
||||
|
***********************************************************************************************************************/ |
||||
|
void R_TAU1_Channel5_Stop(void) |
||||
|
{ |
||||
|
TT1 |= _0020_TAU_CH5_STOP_TRG_ON; |
||||
|
/* Mask channel 5 interrupt */ |
||||
|
TMMK15 = 1U; /* disable INTTM15 interrupt */ |
||||
|
TMIF15 = 0U; /* clear INTTM15 interrupt flag */ |
||||
|
} |
||||
|
|
||||
|
/***********************************************************************************************************************
|
||||
|
* Function Name: R_TAU1_Channel5_Get_PulseWidth |
||||
|
* Description : This function measures TAU1 channel 5 input pulse width. |
||||
|
* Arguments : width - |
||||
|
* the address where to write the input pulse width |
||||
|
* Return Value : None |
||||
|
***********************************************************************************************************************/ |
||||
|
void R_TAU1_Channel5_Get_PulseWidth(uint32_t * const width) |
||||
|
{ |
||||
|
/* For channel 5 pulse measurement */ |
||||
|
*width = g_tau1_ch5_width; |
||||
|
} |
||||
|
|
||||
|
/* Start user code for adding. Do not edit comment generated here */ |
||||
|
/* End user code. Do not edit comment generated here */ |
||||
File diff suppressed because it is too large
@ -0,0 +1,133 @@ |
|||||
|
/***********************************************************************************************************************
|
||||
|
* 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/F14 V2.03.07.02 [08 Nov 2021] |
||||
|
* Device(s) : R5F10PPJ |
||||
|
* Tool-Chain : CCRL |
||||
|
* Description : This file implements device driver for TAU module. |
||||
|
* Creation Date: 2026-08-03 |
||||
|
***********************************************************************************************************************/ |
||||
|
|
||||
|
/***********************************************************************************************************************
|
||||
|
Includes |
||||
|
***********************************************************************************************************************/ |
||||
|
#include "r_cg_macrodriver.h" |
||||
|
#include "r_cg_timer.h" |
||||
|
/* Start user code for include. Do not edit comment generated here */ |
||||
|
/* End user code. Do not edit comment generated here */ |
||||
|
#include "r_cg_userdefine.h" |
||||
|
|
||||
|
/***********************************************************************************************************************
|
||||
|
Pragma directive |
||||
|
***********************************************************************************************************************/ |
||||
|
#pragma interrupt r_tau1_channel5_interrupt(vect=INTTM15) |
||||
|
/* Start user code for pragma. Do not edit comment generated here */ |
||||
|
/* End user code. Do not edit comment generated here */ |
||||
|
|
||||
|
/***********************************************************************************************************************
|
||||
|
Global variables and functions |
||||
|
***********************************************************************************************************************/ |
||||
|
/* For TAU1_ch5 pulse measurement */ |
||||
|
volatile uint32_t g_tau1_ch5_width = 0UL; |
||||
|
/* Start user code for global. Do not edit comment generated here */ |
||||
|
#define TAU1_CH5_CAPTURE_QUEUE_SIZE (16U) |
||||
|
#define TAU1_CH5_CAPTURE_QUEUE_MASK (TAU1_CH5_CAPTURE_QUEUE_SIZE - 1U) |
||||
|
|
||||
|
static volatile uint32_t g_tau1_ch5_low_ticks[TAU1_CH5_CAPTURE_QUEUE_SIZE]; |
||||
|
static volatile uint8_t g_tau1_ch5_capture_head = 0U; |
||||
|
static volatile uint8_t g_tau1_ch5_capture_tail = 0U; |
||||
|
static volatile uint8_t g_tau1_ch5_capture_overflow = 0U; |
||||
|
/* End user code. Do not edit comment generated here */ |
||||
|
|
||||
|
/***********************************************************************************************************************
|
||||
|
* Function Name: r_tau1_channel5_interrupt |
||||
|
* Description : This function is INTTM15 interrupt service routine. |
||||
|
* Arguments : None |
||||
|
* Return Value : None |
||||
|
***********************************************************************************************************************/ |
||||
|
static void __near r_tau1_channel5_interrupt(void) |
||||
|
{ |
||||
|
if ((TSR15 & _0001_TAU_OVERFLOW_OCCURS) == 1U) /* overflow occurs */ |
||||
|
{ |
||||
|
g_tau1_ch5_width = (uint32_t)(TDR15 + 1U) + 0x10000U; |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
g_tau1_ch5_width = (uint32_t)(TDR15 + 1U); |
||||
|
} |
||||
|
|
||||
|
/* Start user code. Do not edit comment generated here */ |
||||
|
/* A rising edge ends a LOW pulse. Queue only LOW widths for the OWI decoder. */ |
||||
|
if ((P7 & 0x01U) != 0U) |
||||
|
{ |
||||
|
uint8_t next = (uint8_t)((g_tau1_ch5_capture_head + 1U) & TAU1_CH5_CAPTURE_QUEUE_MASK); |
||||
|
|
||||
|
if (next != g_tau1_ch5_capture_tail) |
||||
|
{ |
||||
|
g_tau1_ch5_low_ticks[g_tau1_ch5_capture_head] = g_tau1_ch5_width; |
||||
|
g_tau1_ch5_capture_head = next; |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
g_tau1_ch5_capture_overflow = 1U; |
||||
|
} |
||||
|
} |
||||
|
/* End user code. Do not edit comment generated here */ |
||||
|
} |
||||
|
|
||||
|
/* Start user code for adding. Do not edit comment generated here */ |
||||
|
void R_TAU1_Channel5_CaptureReset(void) |
||||
|
{ |
||||
|
DI(); |
||||
|
g_tau1_ch5_capture_head = 0U; |
||||
|
g_tau1_ch5_capture_tail = 0U; |
||||
|
g_tau1_ch5_capture_overflow = 0U; |
||||
|
g_tau1_ch5_width = 0UL; |
||||
|
EI(); |
||||
|
} |
||||
|
|
||||
|
uint8_t R_TAU1_Channel5_GetLowWidthTicks(uint32_t * const ticks) |
||||
|
{ |
||||
|
uint8_t available = 0U; |
||||
|
|
||||
|
if (ticks == 0) |
||||
|
{ |
||||
|
return 0U; |
||||
|
} |
||||
|
|
||||
|
DI(); |
||||
|
if (g_tau1_ch5_capture_tail != g_tau1_ch5_capture_head) |
||||
|
{ |
||||
|
*ticks = g_tau1_ch5_low_ticks[g_tau1_ch5_capture_tail]; |
||||
|
g_tau1_ch5_capture_tail = |
||||
|
(uint8_t)((g_tau1_ch5_capture_tail + 1U) & TAU1_CH5_CAPTURE_QUEUE_MASK); |
||||
|
available = 1U; |
||||
|
} |
||||
|
EI(); |
||||
|
|
||||
|
return available; |
||||
|
} |
||||
|
|
||||
|
uint8_t R_TAU1_Channel5_CaptureOverflowed(void) |
||||
|
{ |
||||
|
return g_tau1_ch5_capture_overflow; |
||||
|
} |
||||
|
/* End user code. Do not edit comment generated here */ |
||||
Loading…
Reference in new issue