Skip to content

File TIM_SingleCallback.cpp

File List > examples > TIM_SingleCallback > TIM_SingleCallback.cpp

Go to the documentation of this file

Source Code

#include "daisy_seed.h"

using namespace daisy;

DaisySeed hw;

void Callback(void* data)
{
    bool led_state = (System::GetNow() & 1023) > 511;
    hw.SetLed(led_state);
}

int main(void)
{
    hw.Init();

    TimerHandle         tim5;
    TimerHandle::Config tim_cfg;

    tim_cfg.periph     = TimerHandle::Config::Peripheral::TIM_5;
    tim_cfg.enable_irq = true;

    auto tim_target_freq = 30;
    auto tim_base_freq   = System::GetPClk2Freq();
    tim_cfg.period       = tim_base_freq / tim_target_freq;

    tim5.Init(tim_cfg);
    tim5.SetCallback(Callback);

    tim5.Start();

    while(1) {}
}