Цитата(Sergey_Aleksandrovi4 @ Dec 19 2011, 11:47)

Скорее всего неверно задана частота МК в проекте. Это может быть запись вида "#define MAIN_CLK 8000000" в одном из заголовочных файлов, либо в настройках проекта. Что за компилятор используете?
Дело в том, что функции задержки являются циклом, в котором выполняется пустая команда "nop". При расчёте числа итераций цикла, компилятор использует параметры: длительность задержки (то что вы задавали в качестве аргумента функции _delay_ms()) и тактовая частота.
Ещё неплохо убедиться что сам МК работает на той частоте, которую вы от него хотите получить (проверяем Fuse).
компилирую с помощью AVR Studio 5.0. При компиляции ошибок не выдает но есть два предупреждения:
Warning 1 #warning "F_CPU not defined for <util/delay.h>"
Warning 2 #warning "Compiler optimizations disabled; functions from <util/delay.h> won't work as designed"
как раз в <util/delay.h> написано что Compiler optimizations должен быть включен иначе задержки будут дольше, как его включить?
и почему пишет первое предупреждение если в присутствует строка # define F_CPU 1000000UL или я что то не так понимаю разъясните пожалуйста?
Цитата(mempfis_ @ Dec 19 2011, 12:00)

Почитайте внимательней об одном из режимов PWM TC1. Возможно для этого Вам подойдёт Phase Correct PWM Mode. И проверте чтобы Ваш процессор работал на заявленной частоте (fuse-биты, калибровочный байт если тактируете от внутренней RC-цепочки)
если не трудно киньте ссылку где рассказывается о данном режиме для Atmega8