Thanks, I finally find that without bootloader watchdog still work.
Anyway please see what worng with my code that causes watchdog stop working.
I know that it will work if I just comment out blink led in setup,
but I do not know why.
#include <avr/wdt.h>
void setup()
{
wdt_disable();
pinMode(13, OUTPUT);
digitalWrite(13, HIGH); // without this line, work fine
delay(100); // without this line, work fine
digitalWrite(13, LOW); // without this line, work fine
delay(100); // without this line, work fine
wdt_enable(WDTO_4S);
wdt_reset();
}
void loop()
{
digitalWrite(13, HIGH); // set the LED on
delay(1000); // wait for a second
digitalWrite(13, LOW); // set the LED off
delay(1000); // wait for a second
wdt_reset();
digitalWrite(13, HIGH); // set the LED on
delay(1000); // wait for a second
digitalWrite(13, LOW); // set the LED off
delay(1000); // wait for a second
wdt_reset();
digitalWrite(13, HIGH); // set the LED on
delay(5000); // wait for 5 second to test watchdog
wdt_reset();
}