Usage example (Input pulse interval measuremen)
Measure the interval of the falling edges input to TImn pin.
[Waveform example]

[GUI setting example]
| 
       Timer  | 
    
       Used  | |||
| 
       TAU0  | 
    
       Used  | |||
| 
       Channel0  | 
    ||||
| 
       channel 0  | 
    
       Input pulse interval measurement  | |||
| 
       Input source setting  | 
    
       TI00  | |||
| 
       TI00 interval range  | 
    
       0.125 (μs) < TI00 < 8.192 (ms)  | |||
| 
       Enable using noise filter of TI00 pin input signal  | 
    
       Unused  | |||
| 
       Generates INTTM00when counting is started.  | 
    
       Unused  | |||
| 
       Input edge setting  | 
    
       Falling edge  | |||
| 
       End of timer channel0 capture, generate an interrupt (INTTM00)  | 
    
       Used  | |||
| 
       Priority  | 
    
       Low  | |||
Remark The period of count clock is 1/2 of the minimum value in the eage selected ‘TI00 interval range’. At this GUI setting example, the period of count clock is 0.0625usec.
[API setting example]
r_main.c
void main(void)
{
R_MAIN_UserInit();
/* Start user code. Do not edit comment generated here */
/* Start TAU0 channel 0 counter */
R_TAU0_Channel0_Start();
while (1U)
{
;
}
/* End user code. Do not edit comment generated here */
}
r_cg_timer_user.c
/* Start user code for global. Do not edit comment generated here */
volatile uint32_t g_width = 0UL;
/* End user code. Do not edit comment generated here */
static void __near r_tau0_channel0_interrupt(void)
{
if ((TSR00 & _0001_TAU_OVERFLOW_OCCURS) == 1U) /* overflow occurs */
{
g_tau0_ch0_width = (uint32_t)(TDR00 + 1U) + 0x10000U;
}
else
{
g_tau0_ch0_width = (uint32_t)(TDR00 + 1U);
}
/* Start user code. Do not edit comment generated here */
/* Get TAU0 channel 0 input pulse width. Pulse width(usec) = (Period of count clock(usec) * g_width) */
R_TAU0_Channel0_Get_PulseWidth((uint32_t *)&g_width);
/* End user code. Do not edit comment generated here */
}