From c1e7f8c6c794ca40f99cf4b9a42f3787f5131909 Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Thu, 3 Dec 2015 14:44:18 +0000 Subject: WDG driver works, update of all registries, halconf.h and mcuconf.h to be performed. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@8557 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/ports/STM32/LLD/xWDGv1/wdg_lld.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'os/hal') diff --git a/os/hal/ports/STM32/LLD/xWDGv1/wdg_lld.c b/os/hal/ports/STM32/LLD/xWDGv1/wdg_lld.c index bdcfb383a..8ea82a958 100644 --- a/os/hal/ports/STM32/LLD/xWDGv1/wdg_lld.c +++ b/os/hal/ports/STM32/LLD/xWDGv1/wdg_lld.c @@ -81,19 +81,33 @@ void wdg_lld_init(void) { */ void wdg_lld_start(WDGDriver *wdgp) { - /* Unlock IWDG.*/ +#if 1 + /* Enable IWDG and unlock for write.*/ + wdgp->wdg->KR = KR_KEY_ENABLE; wdgp->wdg->KR = KR_KEY_WRITE; /* Write configuration.*/ wdgp->wdg->PR = wdgp->config->pr; wdgp->wdg->RLR = wdgp->config->rlr; + while (wdgp->wdg->SR != 0) + ; + + /* This also triggers a refresh.*/ wdgp->wdg->WINR = wdgp->config->winr; +#else + /* Unlock IWDG.*/ + wdgp->wdg->KR = KR_KEY_WRITE; + + /* Write configuration.*/ + wdgp->wdg->PR = wdgp->config->pr; + wdgp->wdg->RLR = wdgp->config->rlr; while (wdgp->wdg->SR != 0) ; /* Start operations.*/ wdgp->wdg->KR = KR_KEY_RELOAD; wdgp->wdg->KR = KR_KEY_ENABLE; +#endif } /** -- cgit v1.2.3