Здравствуйте друзья, помогите разобраться, вот у меня codeblock (с winavr) и студия АВР. Так как студия на моем компютере немного долго включается, компилирует тоже ( код из нескольких строк с морганием диодом и пары delay-ев занял секунд 10) и проекты долго включает.... ну тут комп такой, что с ним только не делал, но сейчас не об этом. И вот, значит codeblock. Идентичный код( моргалок со студии), компилированный с код блока ведет себя странно. Ну именно delay. Пара варнингов типо :
Код: Выделить всё
warning: "F_CPU" redefined
warning: this is the location of the previous definition
warning "Compiler optimizations disabled; functions from <util/delay.h> won't work as designed"
Вот и всё что он мне говорит. А вот, собственно, что выходит - заливаю hex в протеус, и там где стоит delay в коде он его игнорирует, и все что стоит за ним. По ошибкам ничего конкретного не нашел. вот код
Спойлер
Код: Выделить всё
#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRD= 0x03;
PORTD=0x00;
while(1){
if (PIND&(1<<PD2)){
_delay_ms(200);
PORTD |= (1<<PD0);
_delay_ms(200);
PORTD &= ~(1<<PD0);
}
}
return 0;
}
То есть, в данном случае проверка кнопки есть, реакции нету. Если уберу первый _delay_ms(200) - загорится, если нажать кнопку, ... и будет продолжать гореть ни разу не моргнув.
Надо заметить, что студия на этот код не ругается и делает работоспособным, но делает это чертовски мееееееедленно.
Может, знает кто в чем дело?