This test I wrote a while back worked fine for me. When the blink interval got up to 500 milliseconds, the system reset.
// Watchdog Timer Example
#include <avr/wdt.h>
unsigned long ToggleDelay; // When this delay grows to longer than the WDT interval the WDT resets the Arduino
void toggle_led()
{
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}
void setup()
{
wdt_disable();
ToggleDelay = 10; // Start with a very short delay
pinMode(LED_BUILTIN, OUTPUT);
wdt_enable(WDTO_500MS); // Set watchdog to 1/2 second
}
void loop()
{
wdt_reset();
toggle_led(); // Blinking goes slower and slower until the WDT causes reset, then starts over.
delay(ToggleDelay);
ToggleDelay += 10; // Increase the delay by 10 milliseconds.
}
So you're uploading using a progammer? Is there a reason why you don't use the USB interface for sketch upload? Does your sketch work if you upload that way?