Witajcie,
Jest sobie program na atmega8, coś tam mierzy na ADC, mierzy temp. przez DS18B20, wyświetla wszystko na 7-segment i przełącza kilka przekaźników. A problem jest taki - avr-gcc nie wiedzieć czemu (chyba) przy kompilacji używa nieprawidłowych plików z definicjami rejestrów procesora. Oczywiście na początku pliku mam #include <avr/io.h>, a kompilator wywołuje z -mmcu=atmega8. Tylko, że np. taka linijka jest w ogóle pomijana: ADCSRA = _BV(ADEN)|_BV(ADPS1)|_BV(ADPS2); Są też błędy (a może raczej braki) przy konfiguracji innych rejestrów (np. timerów), nie rozpoznaje mi niektórych nazw rejestrów/bitów. IDE którego używam (CodeBlocks pod Ubuntu), pozwala mi na podejrzenie, w którym pliku znajdują się definicje użytych nazw rejestrów/bitów - i tu ciekawostka, wypluwa mi że definicje wziął z pliku ioat94k.h - tak jakby w ogóle olał parametr mmcu i wybrał sobie pierwszy lepszy plik do którego odnosi się avr/io.h. Przejrzałem ten plik (ioat94k) dokładnie - takie nazwy nie są tam zdefiniowane (w końcu to inny procek), dla porównania podejrzałem w iom8.h - tutaj oczywiście są. Więc faktycznie z jakiegoś nieznanego mi powodu zostaje wywołany nieprawidłowy plik z definicjami - dlaczego? Walczę z tym od wczoraj i skończyły mi się pomysły, próbowałem zmieniać ustawienia wywołania avr-gcc, ale nie ma efektów.