Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
uPython-mirror
Commits
2a8d7ee0
Commit
2a8d7ee0
authored
Oct 08, 2015
by
Damien George
Browse files
stmhal: Fix RTC.wakeup so it correctly calculates WUT for large periods.
Thanks to Peter Hinch. Addresses issue #1488.
parent
fd387990
Changes
1
Hide whitespace changes
Inline
Side-by-side
stmhal/rtc.c
View file @
2a8d7ee0
...
...
@@ -419,17 +419,23 @@ mp_obj_t pyb_rtc_wakeup(mp_uint_t n_args, const mp_obj_t *args) {
if
(
div
<=
16
)
{
wut
=
32768
/
div
*
ms
/
1000
;
}
else
{
// use 1Hz clock
wucksel
=
4
;
wut
=
ms
/
1000
;
if
(
ms
>
0x10000
)
{
wucksel
=
5
;
ms
-=
0x10000
;
if
(
ms
>
0x10000
)
{
if
(
wut
>
0x10000
)
{
// wut too large for 16-bit register, try to offset by 0x10000
wucksel
=
6
;
wut
-=
0x10000
;
if
(
wut
>
0x10000
)
{
// wut still too large
nlr_raise
(
mp_obj_new_exception_msg
(
&
mp_type_ValueError
,
"wakeup value too large"
));
}
}
}
wut
-=
1
;
// wut register should be 1 less than desired value, but guard against wut=0
if
(
wut
>
0
)
{
wut
-=
1
;
}
enable
=
true
;
}
if
(
n_args
==
3
)
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment