Witam!
Rozpoczynam właśnie naukę programowania mikrokontrolerów AVR. Pomaga mi ten kurs.
Mam problem z kompilacją pierwszego programu z kursu. Oto jego kod
/* "led.c" - programik do testowania środowiska WinAVR */
/* układ ATmega 1MHz */
/* PB0,PB1 - diody LED; PD0 - przycisk */
#define F_CPU 1000000L
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRB |= _BV(0)|_BV(1);
PORTB |= _BV(0);
PORTB &= ~_BV(1);
DDRD &= ~_BV(0);
PORTD |= _BV(0);
while (1)
{
PORTB ^=_BV(0);
PORTB ^=_BV(1);
_delay_ms((PIND & _BV(0))? 1000: 200);
}
}
Próbowałem skompilować ten program w WinAVR, ale pokazywały mi się błędy. Polecono mi skorzystanie z innego programu, wybrałem Eclipse z pluginem AVR, który sam wykonuje pliki Makefile. Po zrobieniu wszystkiego zgodnie z instrukcjami
Pojawia mi się taki błąd
Description Resource Path Location Type
make: [led2.lss] Error 128 (ignored) C/C++ Problem
oraz 2 ostrzeżenia
Description Resource Path Location Type
"F_CPU" redefined led.c /led2 line 12 C/C++ Problem
Description Resource Path Location Type
#warning "Compiler optimizations disabled; functions from <util/delay.h> won't work as designed" led2 line 90, external location: e:\winavr-20100110\avr\include\util\delay.h C/C++ Problem
Czy mogę zignorować te ostrzeżenia? Jak naprawić pojawiający się błąd? Macie jakieś pomysły, co może być jego przyczyną?