Witam serdecznie.
Posiadam 2 mikroprocesorki: ATmega16-16PU oraz ATmega16a-PU. Napisałem prosty program w C, który steruje kolejnością świecenia diod LED oraz ich opóźnieniami(w LedCube). Mam dość duży problem a mianowicie: Po wgraniu programu do mega16-16pu program pracuje jak najbardziej normalnie, lecz po zaprogramowaniu mega16a-pu program pracuje w bardzo dużym spowolnieniu. Np. dałem opóźnienie 500ms, w mega16-16pu jest to 0,5sekundy zaś w mega16a-pu jest to kilkanaście sekund. Musiałem napisać program z opóźnieniami takimi jak 10ms by pracował on normalnie w mega16a-pu. Nie mam pojęcia co jest przyczyną takiego powolnego działania programu. Kwarc na układzie to 14,7456 MHz - poprawnie zdefiniowany w programie jak i w Makefile. Również uC w Makefile jest poprawny, zaś w avrdude(bo w nim pracuje) jest tylko ATmega16 więc ten mikro wybrałem. Programuje programatorem USBasp - mega16-16pu można zaprogramować normalnie, zaś mega16a-pu trzeba programować w trybie SLOWSCK(zworka na programatorze).
Moim pytaniem jest: Dlaczego program działa tak wolno w mega16a-pu?
Kiedy pisze proste animacje to nie potrzeba mi tych opóźnień zbytnio, zaś kiedy potrzebuje multipleksować diody opóźnienia te jak najbardziej przydałyby się rzeczywiste. Za wszelaką pomoc bardzo dziękuję.
Posiadam 2 mikroprocesorki: ATmega16-16PU oraz ATmega16a-PU. Napisałem prosty program w C, który steruje kolejnością świecenia diod LED oraz ich opóźnieniami(w LedCube). Mam dość duży problem a mianowicie: Po wgraniu programu do mega16-16pu program pracuje jak najbardziej normalnie, lecz po zaprogramowaniu mega16a-pu program pracuje w bardzo dużym spowolnieniu. Np. dałem opóźnienie 500ms, w mega16-16pu jest to 0,5sekundy zaś w mega16a-pu jest to kilkanaście sekund. Musiałem napisać program z opóźnieniami takimi jak 10ms by pracował on normalnie w mega16a-pu. Nie mam pojęcia co jest przyczyną takiego powolnego działania programu. Kwarc na układzie to 14,7456 MHz - poprawnie zdefiniowany w programie jak i w Makefile. Również uC w Makefile jest poprawny, zaś w avrdude(bo w nim pracuje) jest tylko ATmega16 więc ten mikro wybrałem. Programuje programatorem USBasp - mega16-16pu można zaprogramować normalnie, zaś mega16a-pu trzeba programować w trybie SLOWSCK(zworka na programatorze).
Moim pytaniem jest: Dlaczego program działa tak wolno w mega16a-pu?
Kiedy pisze proste animacje to nie potrzeba mi tych opóźnień zbytnio, zaś kiedy potrzebuje multipleksować diody opóźnienia te jak najbardziej przydałyby się rzeczywiste. Za wszelaką pomoc bardzo dziękuję.
