Das könnte damit zusammenhängen, dass der Präprozessor hier anscheinend mit int rechnet.
1/(F_CPU/PRESCALE) ergibt dann 0,000008, was als int auf Null abgeschnitten wird. Dasselbe passiert nochmal bei (PERIOD/1000) = 0,02, was auch zu Null wird. Letztendlich wird also 0 durch 0 geteilt...

Edit: ist 1250 das, was deiner Meinung nach rauskommen sollte? Das passiert bei
#define ICR (int) (((PERIOD/(float)1000)/(1/(F_CPU/(float)PRESCALE)))/2)

PS: so ein kurzes Stück Code sollte man besser in [code ][/code ]-Tags packen statt in den Anhang. Dann sieht jeder sofort, was drinsteht.

PPS: und so wird es auch noch einigermaßen lesbar:
Code:
#define ICR (int) 	(											\
						(										\
							(PERIOD/(float)1000)				\
							/									\
							(									\
								1								\
								/								\
								(F_CPU/(float)PRESCALE)			\
							)									\
						)										\
					/											\
					2											\
					)