Atmega8A-PU with ISP delays

Hello
I am using Arduino uno as ISP and I uploaded basic --> blink program using avrdude commands to the Atmega8.
I used this tutorial http://pdp11.byethost12.com/AVR/ArduinoAsProgrammer.htm

I am not using any kind of external oscillator and I am not using bootloader.

I set in program delay to 1000 but real program wait 5+ seconds and then led light on an it wait next 5 sec to turn off.

I founded fuse calculator AVR® Fuse Calculator – The Engbedded Blog
I set device to atmega8a --> int rc oscilator to 8mhz ---> apply feature settings --> copy avrdude arguments.

I sended this argument using command line avrdude -P COM3 -b 19200 -c avrisp -p m8 -U lfuse:w:0xe4:m -U hfuse:w:0xd9:m
Now delay in program is appxrox. 2 seconds.

What am I doing wrong? Why the delay in real is not equal to delay in the program? Thanks!

You need to select 8Mhz for your board. I'm guessing you have Arduino UNO (or another 16Mhz board) selected in the IDE. When you run it on an MCU at 8Mhz, it takes twice as long.

Thank you ralphd you directed me to the right way.

I had set board as atmega8 in IDE but default frequency for atmega8 is 16MHz. Frequency can not be set directly in the IDE. I set the default frequency for atmega8 (to 8 000 000Hz) in boards.txt and then compile program and upload it using avrdude to atmega8a.

But I mean that is not super accurate (ex precision time counting) and it need some calibration or external oscillator for better accuracy.

Problem solved.