para que el while(1) si ya estas en loop que es un while(1)
Esto es una mezcla del pasado y el presente de ATMEL, decidete como programar!
en realidad el loop es while(1)
No sabemos como estan los pines conectados, si PIND tiene algun bit en 1, esto
if(PIND==0x04) jamas se cumplirá.
Deberías enmascararlo
Olvida los OCR1A y solo prueba con un contador simple, funciona?