LPC11C24 WD Reset

OP #5768445
Lesenswert?
• ▲
▼
Ich würde gerne beim LPC11C24 den Watchdog aktivieren, der Controller 
sollte einen Reset machen wenn der Watchdog aktiviert wird.

mein letzer Versuch mit code aus dem INet zusammengesammelt wäre :
1
  Chip_WWDT_Init(LPC_WWDT);
2
  Chip_SYSCTL_PowerUp(SYSCTL_POWERDOWN_WDTOSC_PD);
3
  Chip_Clock_SetWDTOSC(WDTLFO_OSC_1_05, 20);
4
  Chip_Clock_SetWDTClockSource(SYSCTL_WDTCLKSRC_WDTOSC, 1);
5

6
  Chip_WWDT_SetTimeOut(LPC_WWDT, 2);
7

8
  Chip_WWDT_ClearStatusFlag(LPC_WWDT, WWDT_WDMOD_WDTOF);
9

10
  NVIC_ClearPendingIRQ(WDT_IRQn);
11
    NVIC_EnableIRQ(WDT_IRQn);
12

13
    /* Start watchdog */
14
    Chip_WWDT_Start(LPC_WWDT);

hat wer da ein funktionierendes Beispiel?
Gast #5768463
Lesenswert?
• ▲
▼
1
void WDTFeed( void )
2
{
3
  LPC_WDT->FEED = 0xAA;  /* Feeding sequence */
4
  LPC_WDT->FEED = 0x55;
5
  return;
6
}
7

8
void WDTInit( int i10ms )
9
{
10
  LPC_SYSCON->BODCTRL=0x03 | (0x1<<4);
11

12
  // Settings for LPC1114
13
  // Enable clock to WDT */
14
  LPC_SYSCON->SYSAHBCLKCTRL |= (1<<15);
15

16
  // 7.81Khz
17
  LPC_SYSCON->WDTOSCCTRL = 0x03F; // FREQSSL 1 DIVSEL 64
18
  LPC_SYSCON->PDRUNCFG &= ~(0x1<<6);
19

20
  LPC_SYSCON->WDTCLKSEL = 0x02;  // Select watchdog osc 
21
  LPC_SYSCON->WDTCLKUEN = 0x01;  // Update clock 
22
  LPC_SYSCON->WDTCLKUEN = 0x00;  // Toggle update register once 
23
  LPC_SYSCON->WDTCLKUEN = 0x01;
24
  // Wait until updated 
25
  while ( !(LPC_SYSCON->WDTCLKUEN & 0x01) );  
26

27
  // Divided by 1 
28
  LPC_SYSCON->WDTCLKDIV = 1;  
29

30
  // ergibt bei ca. 7.8Khz 10s
31
  LPC_WDT->TC = i10ms * (78/4);  
32

33
  //WDEN | WDRESET;
34
  LPC_WDT->MOD = 0x03; 
35

36
  // mit der ersten Feeding sequence gehts los
37
  LPC_WDT->FEED = 0xAA;  
38
  LPC_WDT->FEED = 0x55;
39
}
OP #5768559
Lesenswert?
• ▲
▼
hmmm kann es sein das ich mir damit meine LPC11C24 etwas zerschossen 
haben?

Wollte das obige testen, und nun kann ich dieses Gerät mit der 
LPCXpresso nicht mehr ansprechen - bekomme immer wenn ich debugen will 
den Fehler :
"reading core register failed-rc EP(08) Cannot access core reigster when 
target is running"

habe dann die Sachen wieder zurückgebaut, und funkt auch nicht, 
umgesteckt auf ein anderes Device funktioniert sofort wieder.
Gast #5768608
Lesenswert?
• ▲
▼
Wenn der Watchdog zuschlägt gibt es einen Reset. Du musst schon in 
deinem Hauptprogramm WDTFeed() ausreichend oft aufrufen.
Wenn bei den LPCs nichts mehr geht, dann hilft es die Bootloaderpins so 
zu beschalten, dass er in den Bootloader sspringt nach Reset. Dann 
sollte sich auch wieder ein Programm flashen lassen ohne vom Watchdog 
unterbrochen zu werden.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.