How to code when Timer00 interrupt occur, using dppi to let Timer 20 starting count and p0.02 toggle?

int GPPI_GPIOTE_INIT(void)
{
    // MCU :
    NRF_TIMER00->PUBLISH_COMPARE[0] = (0 << TIMER_PUBLISH_COMPARE_CHIDX_Pos) | TIMER_PUBLISH_COMPARE_EN_Msk;
    NRF_PPIB01->SUBSCRIBE_SEND[0]   = (0 << PPIB_SUBSCRIBE_SEND_CHIDX_Pos) | PPIB_SUBSCRIBE_SEND_EN_Msk;
    NRF_DPPIC00->CHENSET = DPPIC_CHENSET_CH0_Msk;

    // PERI :
    NRF_PPIB20->PUBLISH_RECEIVE[0] = (5 << PPIB_PUBLISH_RECEIVE_CHIDX_Pos) | PPIB_PUBLISH_RECEIVE_EN_Msk;
    NRF_PPIB22->SUBSCRIBE_SEND[0]  = (5 << PPIB_SUBSCRIBE_SEND_CHIDX_Pos) | PPIB_SUBSCRIBE_SEND_EN_Msk;
    NRF_TIMER20->SUBSCRIBE_START   = (5 << TIMER_SUBSCRIBE_START_CHIDX_Pos) | TIMER_SUBSCRIBE_START_EN_Msk;
    NRF_DPPIC20->CHENSET = DPPIC_CHENSET_CH5_Msk;

    // LP 
    NRF_GPIOTE30->CONFIG[0] =
        (GPIOTE_CONFIG_MODE_Task       << GPIOTE_CONFIG_MODE_Pos)   |
        (2                             << GPIOTE_CONFIG_PSEL_Pos)   |
        (0                             << GPIOTE_CONFIG_PORT_Pos)   |
        (GPIOTE_CONFIG_POLARITY_Toggle << GPIOTE_CONFIG_POLARITY_Pos);

    // LP 
    NRF_GPIOTE30->SUBSCRIBE_OUT[0] = (0 << GPIOTE_SUBSCRIBE_OUT_CHIDX_Pos) | GPIOTE_SUBSCRIBE_OUT_EN_Msk;
    NRF_PPIB30->PUBLISH_RECEIVE[0] = (0 << PPIB_PUBLISH_RECEIVE_CHIDX_Pos) | PPIB_PUBLISH_RECEIVE_EN_Msk;
    NRF_DPPIC30->CHENSET = DPPIC_CHENSET_CH0_Msk;

    return 0;
}
static void timer20_handler(nrf_timer_event_t event_type, void * p_context)
{
    if(event_type == NRF_TIMER_EVENT_COMPARE0)
    {
        LED_B_toggle;
    }
}



int8_t Timer20_init(void)
{

    IRQ_CONNECT(NRFX_IRQ_NUMBER_GET(NRF_TIMER_INST_GET(TIMER20_IDX)), 
                1,
                nrfx_timer_irq_handler,
                 &timer20_inst,
                  0);

    uint32_t base_frequency = NRF_TIMER_BASE_FREQUENCY_GET(timer20_inst.p_reg);
    nrfx_timer_config_t config = NRFX_TIMER_DEFAULT_CONFIG(base_frequency);
    config.bit_width = NRF_TIMER_BIT_WIDTH_32;
    config.p_context = "";

    nrfx_timer_init(&timer20_inst, &config, timer20_handler); 

    nrfx_timer_clear(&timer20_inst);

    
    uint32_t desired_ticks = nrfx_timer_us_to_ticks(&timer20_inst, Time_1us);


      nrfx_timer_extended_compare(&timer20_inst, NRF_TIMER_CC_CHANNEL0, desired_ticks,
                                NRF_TIMER_SHORT_COMPARE0_STOP_MASK, true); 

    nrfx_timer_enable(&timer20_inst);

    return 0;
}
Please check the code, the p0.2 is working, but Timer20 cannot start. 
Related