Previous code breaks when target MCU not atmega16/32
It is confirmed that the original code works with atmega16/32 without enable watchdog.
The previous hung experienced
"avrdude: Warning: cannot query manufacturer for device: Input/output error
 avrdude: error: could not find USB device "USBasp" with vid=0x16c0 pid=0x5dc"
was simply caused by my unstable 4.7uF polarized capacitor.
By changed it to new parts the device works with the original code.
Also 10uF polarized as the new parts and with little trial and error,
any "good" caps ranging 1uF-10uF do works.