lpc23xx software rest

Başlatan armsistem, 21 Mayıs 2013, 17:30:39

armsistem

Arkadaşlar merhaba , yazılımsal olarak işlemciyi nasıl reset attırabilirim.

SpeedyX

wdt ile olabilir. wdog_init(); ardından for( ; ; ) ;

void wdog_kick(void) {
    // Errata 23xx WDT.1 No APB accesses allowed during feed sequence.
    unsigned prev = VICIntEnable;
    VICIntEnClr=prev;   // Disabling interrupts in the VIC
    WDFEED = 0xAA;
    WDFEED = 0x55;
    VICIntEnable=prev;  // Enabling interrupts in the VIC
}

void wdog_init(void) {
    WDTC = PCLK/4;          // Watchdog timer constant.
    WDMOD = WDEN|WDRESET;   // Reset processor if failure to kick.
    wdog_kick();            // Activate watchdog.
}