-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
sys/ztimer: add LPTIMER auto init #17654
Conversation
Maybe @jue89 could review this, as he has the hardware and also is interested in a use case for this. |
So say I have --- a/boards/same54-xpro/include/periph_conf.h
+++ b/boards/same54-xpro/include/periph_conf.h
@@ -92,6 +92,15 @@ static const tc32_conf_t timer_config[] = {
.gclk_id = TC2_GCLK_ID,
.gclk_src = SAM0_GCLK_TIMER,
.flags = TC_CTRLA_MODE_COUNT32,
+ },
+ { /* Timer 2, low power */
+ .dev = TC4,
+ .irq = TC4_IRQn,
+ .mclk = &MCLK->APBCMASK.reg,
+ .mclk_mask = MCLK_APBCMASK_TC4 | MCLK_APBCMASK_TC5,
+ .gclk_id = TC4_GCLK_ID,
+ .gclk_src = SAM0_GCLK_32KHZ,
+ .flags = TC_CTRLA_MODE_COUNT32,
}
};
@@ -103,6 +112,10 @@ static const tc32_conf_t timer_config[] = {
#define TIMER_1_CHANNELS 2
#define TIMER_1_ISR isr_tc2
+/* Timer 2 configuration */
+#define TIMER_2_CHANNELS 2
+#define TIMER_2_ISR isr_tc4
+
#define TIMER_NUMOF ARRAY_SIZE(timer_config)
/** @} */ how would I go about using this? |
maybe the example commit helps reviewing this I am not sure how to incorporate the extra timer configuration with our boards (stm32 had just one perih_timer prepared for use -not sure how common that is) i should have used timer5 (TIM3 has only 16bits) |
6057078
to
00afe56
Compare
I can confirm that this works on Please squash (& rebase to solve the merge conflict) |
384843f
to
3bb2929
Compare
tests/ztimer_xsec/Makefile
Outdated
@@ -4,6 +4,9 @@ USEMODULE += ztimer | |||
USEMODULE += ztimer_usec | |||
USEMODULE += ztimer_msec | |||
USEMODULE += ztimer_sec | |||
USEMODULE += ztimer_periph_lptimer | |||
|
|||
CFLAGS += "-DCONFIG_ZTIMER_LPTIMER_DEV=TIMER_DEV(1)" "-DCONFIG_ZTIMER_LPTIMER_FREQ=1000LU" "-DCONFIG_ZTIMER_LPTIMER_WIDTH=32" "-DCONFIG_ZTIMER_LPTIMER_BLOCK_PM_MODE=ZTIMER_CLOCK_NO_REQUIRED_PM_MODE" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will break for all non-stm32 boards
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i will remove that -- maybe i should remove the whole example commit ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yea it's probably for the better
I the details a diff can be found adding a second timer for stm32 (may not work on all devices) and using that in the
|
3bb2929
to
81d06c8
Compare
Contribution description
adds LPTIMER to ztimer auto init
Testing procedure
have to be defined
and
ztimer_periph_lptimer
be used
msec and sec prefer lptimer over rtt
I the details a diff can be found adding a second timer for stm32 (may not work on all devices) and using that in the
ztimer_xsec
example since this PR is about adding the lowpower-timer (lptimer
) support toztimer
this was removed from it.Issues/PRs references
includes #16342
fixes #17611
this may help with using rtt64 by PR #18120