Hallo,
Ich habe Probleme mit dem WWDG des STM32F...
Er generiert mir keinen Reset des Controllers!
Hier die INIT:
1 | void WWDG_init(void)
|
2 | {
|
3 | u32 *temp=((u32 * )0xE0042004); //WWDG-Debug Mode Stop DBGMCU_CR register
|
4 | *temp|= 0x00000200; //WWDG-Debug Mode Stop
|
5 |
|
6 | RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE);
|
7 |
|
8 | NVIC_InitTypeDef NVIC_InitStructure;
|
9 | NVIC_InitStructure.NVIC_IRQChannel =WWDG_IRQChannel;
|
10 | NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
|
11 | NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
|
12 | NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
|
13 | NVIC_Init(&NVIC_InitStructure);
|
14 |
|
15 | /* On Value line devices, WWDG clock counter = (PCLK1 (24MHz)/4096)/8 = 732 Hz (~1366 æs) */
|
16 | /* On other devices, WWDG clock counter = (PCLK1(36MHz)/4096)/8 = 1099 Hz (~910 æs) */
|
17 | WWDG_SetPrescaler(WWDG_Prescaler_8);
|
18 |
|
19 | /* Set Window value to 65 */
|
20 | WWDG_SetWindowValue(65);
|
21 |
|
22 | /* On Value line devices, Enable WWDG and set counter value to 127, WWDG timeout = ~1366 æs * 64 = 87.42 ms */
|
23 | /* On other devices, Enable WWDG and set counter value to 127, WWDG timeout = ~910 æs * 64 = 58.25 ms */
|
24 | WWDG_Enable(127);
|
25 |
|
26 | /* Clear EWI flag */
|
27 | WWDG_ClearFlag();
|
28 |
|
29 | /* Enable EW interrupt */
|
30 | WWDG_EnableIT();
|
31 | }
|
und der early wakeup interrupt:
1 | void WWDG_IRQHandler(void)
|
2 | {
|
3 | /* Update WWDG counter */
|
4 | //WWDG_SetCounter(0x7F);
|
5 |
|
6 | /* Clear EWI flag */
|
7 | WWDG_ClearFlag();
|
8 | }
|
Um einen Reset zu provozieren wird der WWDG nicht neu gesetzt.
Als Ergebniss Zählt der Counter runter bis 0x00 und bleibt dort stehen
ohne bei 0x3F einen Reset zu generieren.
Ich habe den Controller auch schon mal in einem Systick interrupt in
eine while(1) Schleife geschickt so das der WWDG nicht neu gesetzt
werden konnte
Dann Springt er zwar nicht mehr in den WWDG-Interrupt jedoch wird der
Counter dennoch mit 0xff neu gesetzt(evtl Überlauf?)
Ich hoffe ihr könnt mir weiterhelfen
mfg
TSE