Xiao BLE nrf52840 Timer Capture Problem

Hallo zusammen,
ich Versuche gerade mit den Timern des Xiao BLE nrf52840 einen 200ns Puls zu erzeugen. Theoretisch sollte das mit den Timern und dem PPI zusammen klappen. Aktuell scheitere ich aber schon beim Starten des Timers.

Hier ist der Source Code für das initialisieren des Timers:

// Configure TIMER1 for precise 200 ns pulses
    NRF_TIMER1->MODE = TIMER_MODE_MODE_Timer;      // Timer mode
    NRF_TIMER1->PRESCALER = 0;                     // Full 16 MHz clock (62.5 ns per tick)
    NRF_TIMER1->BITMODE = TIMER_BITMODE_BITMODE_16Bit << TIMER_BITMODE_BITMODE_Pos; 
    NRF_TIMER1->CC[0] = 3;                         // 3 ticks = 200 ns
    NRF_TIMER1->SHORTS = TIMER_SHORTS_COMPARE0_CLEAR_Msk;  // Auto-clear after compare match

    // Configure GPIOTE to toggle IR_LED_PIN
    NRF_GPIOTE->CONFIG[0] = (GPIOTE_CONFIG_MODE_Task << GPIOTE_CONFIG_MODE_Pos) |
                            (IR_LED_PIN << GPIOTE_CONFIG_PSEL_Pos) |Z
                            (GPIOTE_CONFIG_POLARITY_Toggle << GPIOTE_CONFIG_POLARITY_Pos);

    // Connect TIMER1 Compare event to GPIOTE task using PPI
    NRF_PPI->CH[0].EEP = (uint32_t)&NRF_TIMER1->EVENTS_COMPARE[0];
    NRF_PPI->CH[0].TEP = (uint32_t)&NRF_GPIOTE->TASKS_OUT[0];
    NRF_PPI->CHENSET = PPI_CHENSET_CH0_Msk;  // Enable PPI channel

    // Start the timer
    NRF_TIMER1->TASKS_START = 1;

Wenn ich über die serielle Schnittstelle den Status des Timers ausgebe, dann ist der TASKS_START immer 0.

Da die Dokumentation für den Timer eher dünn ist, frage ich mich wo der Fehler liegt.

Hat jemand eine Idee ?

Gruß Lars

Diese Doku kennst Du?

Gruß Tommy

Ja, da habe ich mich einmal durch gewühlt. Leider ist da eher der "einfache" Kram beschrieben. Wie setzt ich einen Portpin und ähnliches. Also eher der grundlegende Einstieg in Arduino und dieses Board.

Hardware Timer habe ich da nicht gefunden.

Trotzdem danke

Da steht aber der MC drin und darüber findet man dessen Datenblatt und darin weiterführende Links. Ich kenne den nicht, kann also, wie Du auch nur Suchmaschinen befragen.

Gruß Tommy

Die meisten Angaben habe ich aus dem Datenblatt geholt. War etwas Try and Error, da die Registernamen aus dem Datenblatt teilweise nicht mit den in der include Datei passten. Also eine Mischung aus Datenblatt, Google und include File.

Mehr kann ich auch nicht beisteuern. Mit exotischen Baugruppen hat man halt das Problem, dass die oft kein Anderer kennt.

Gruß Tommy

Hast du einen Vorschlag welches Arduino Board BLE und einen Timer mit Compare hat, den ich alternativ nehmen könnte ? Also einer aus der Nicht Exotengruppe.:rofl:

Wenn du eine Frage zu einem Timer im Xiao BLE hast, solltest du das auch im Titel schreiben.
Dann findet man den Thread sicher besser.

Danke für den Hinweis. Hab Timer Capture Problem im Titel ergänzt.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.