Simple NRF timer interrupt with NANO 33 BLE

Hi everybody,
I’m trying to use a TIMER to measure time between 2 rising edges of input configured has interrupt pin input.
I’m using ARDUINO NANO 33 BLE so NRF52840 µC.
I decided to use “basic programs using direct registers” to understand how it works. But my skills are limited with µC. I successfully did with ATEMEGA328 but very hard with this µC.

I tried this but CC[0] remains 0. If anyone has experience with this µC…thank very much.
Vince.

#include "Arduino.h"
#include "nrf.h"
#include "mbed.h"

#define prescaler 3; // clk /(2^3)
#define TACHO 3 // input for external interrupt


#define PPI_COUNT_CH 10 // canaux PPI
#define PPI_CAPTURE_CH 11

// =============== Probably link between NRF and Arduino bord... ========//
const uint8_t pins[14] = {0,0,11,12,15,13,14,23,21,27,2,1,8,13};
const uint8_t ports[14] = {0,0,1,1,1,1,1,0,0,0,1,1,1,0};


void setup() {  
  Serial.begin(9600);
  while(!Serial){};
  pinMode(TACHO,INPUT_PULLUP);

  // ============ Config Input for event =============
  NRF_GPIOTE->CONFIG[0] = 1 | (pins[TACHO]<<8) | (ports[TACHO]<<13) | (1<<16); // EVENT rising edge on  TACHO PIN

  // ============ Config Timer for interrupt : 32 bits // fclkTimer = 16MHz/(2^3)
  NRF_TIMER3->TASKS_STOP  = 1; // Stop TIMER, ready to configure...
  NRF_TIMER3->TASKS_CLEAR = 1; // Clear counter valeur
  NRF_TIMER3->MODE        = 0; //TIMER mode
  NRF_TIMER3->BITMODE     = 3; // 32 bits
  NRF_TIMER3->PRESCALER   = prescaler;
  

  //============== Interconnnect TIMER and Pin input =================
  NRF_PPI->CH[PPI_COUNT_CH].EEP     = (uint32_t)&NRF_GPIOTE->EVENTS_IN[0];
  NRF_PPI->CH[PPI_CAPTURE_CH].TEP   = (uint32_t)&NRF_TIMER3->TASKS_CAPTURE[0]; // Capture Timer value
  NRF_PPI->CHEN    |= (1 << ((uint32_t)PPI_CAPTURE_CH));
  NRF_PPI->CHENSET |= (1 << ((uint32_t)PPI_CAPTURE_CH));

  NRF_TIMER3->TASKS_START; // Start TIMER task
}

void loop() {
  Serial.println(digitalRead(TACHO));
  Serial.print("NRF_TIMER3->CC[0] : ");
  Serial.println(NRF_TIMER3->CC[0]);
  delay(1000);
  // put your main code here, to run repeatedly:

}

Result :

INPUT : 0
NRF_TIMER3->CC[0] : 0
INPUT : 0
NRF_TIMER3->CC[0] : 0
INPUT : 1
NRF_TIMER3->CC[0] : 0
INPUT : 1
NRF_TIMER3->CC[0] : 0
INPUT : 0
NRF_TIMER3->CC[0] : 0
INPUT : 0
NRF_TIMER3->CC[0] : 0
INPUT : 0
NRF_TIMER3->CC[0] : 0