I tried using counter example but seems like it uses RTC0, i want to use internal timer. Counter example gets stuck in device det get binding. Here is the code for reference.
void Timer_counterInterruptFunction(const struct device *counter_dev,
uint8_t chan_id, uint32_t ticks,
void *user_data)
{
struct counter_alarm_cfg *config = user_data;
uint32_t now_ticks;
uint64_t MasterTimerMicroSeconds;
int MasterTimerMilliSeconds;
int MasterTimerSeconds;
int err;
err = counter_get_value(counter_dev, &now_ticks);
if (err) {
printk("Failed to read counter value (err %d)", err);
return;
}
MasterTimerMicroSeconds = counter_ticks_to_us(counter_dev, now_ticks);
MasterTimerSeconds = (int)(MasterTimerMicroSeconds / USEC_PER_SEC);
err = counter_set_channel_alarm(counter_dev, ALARM_CHANNEL_ID,user_data);
}
void Timer_Init(void)
{
int err;
counter_dev = device_get_binding(TIMER);
err=counter_start(&counter_dev);
alarm_cfg.flags = 0;
alarm_cfg.ticks = counter_us_to_ticks(counter_dev, 1000000);
alarm_cfg.callback = Timer_counterInterruptFunction;
alarm_cfg.user_data = &alarm_cfg;
err = counter_set_channel_alarm(counter_dev, ALARM_CHANNEL_ID,
&alarm_cfg);
}