Witam. Mam płytkę MMnet03 + EVBnet03 (z procesorem atmega128). Programuję AVR w C dosyć długo, ale z takim czymś się nie spotkałem jeszcze. Utknąłem na prostej rzeczy, otóż mam podłączoną diodę do wyjścia PB0, którą chcę wysterować. Teraz pytanie dlaczego ten program działa (dioda normalnie pracuje):
A dlaczego ten już nie (dioda cały czas się świeci):
Oba programy oczywiście kompilują się i programują bez problemu - jednak działanie jak opisane powyżej. Jedyna różnica między nimi to miejsce konfiguracji portu. Robiłem nowy projekt, ale efekt ten sam. Próbowałem dojść w którym momencie zatrzymuje się praca, wychodziło na to że zawsze procesor stawał jakby przed wykonaniem pierwszej instrukcji w funkcji. Gdy wszystko było w main(), układ chodził poprawnie. Mam najnowszą wersję Atmel Studio 6.0.1996 z SP2, optymalizacja -Os, mam też zdefiniowane F_CPU=16000000UL. Dlaczego tak się dzieje?
Kod: C / C++
A dlaczego ten już nie (dioda cały czas się świeci):
Kod: C / C++
Oba programy oczywiście kompilują się i programują bez problemu - jednak działanie jak opisane powyżej. Jedyna różnica między nimi to miejsce konfiguracji portu. Robiłem nowy projekt, ale efekt ten sam. Próbowałem dojść w którym momencie zatrzymuje się praca, wychodziło na to że zawsze procesor stawał jakby przed wykonaniem pierwszej instrukcji w funkcji. Gdy wszystko było w main(), układ chodził poprawnie. Mam najnowszą wersję Atmel Studio 6.0.1996 z SP2, optymalizacja -Os, mam też zdefiniowane F_CPU=16000000UL. Dlaczego tak się dzieje?