działa, w 5.1 nie

Opisałem skrótowo, chodzi o kompilowany kod przez AS 5.1 (5.0 tak samo). Raczej prosty program, kod obsługi wyświetlacza 2x16 ze strony

formatting link
programie głównym inicjalizacja wyświetlacza i wypisanie tekstu. Biblioteka sprawdziła mi się już wcześniej (AS4 z WinAVR-20100110) więc dodałem do większego projektu pisanego w nowoczesnym, ładnym, ciężkim... AS 5.0. Nie działa LCD. Co jest?! Porty, JTAG włączony, z LCD coś nie tak. Po chwili zmian w kodzie poprzerywanych 'wiązankami' słownymi sprowadziłem do tego, że jest tylko i wyłącznie obsługa LCD - minimum! Przeniosłem kod do projektu AS4, kompilacja i działa! Parametry kompilacji domyślne, (optymalizacja ustawiona -Os, chociaż przy -O0 nie ma poprawy), F_CPU to samo, programator pobierający HEX ten sam. Aha, przed inicjalizacją LCD załączam LED - program startuje. Inicjalizacja LCD też raczej ok, ponieważ przechodzi wzrokowy test na ciemne bloki pierwszego wiersza. Nie wyświetla najprostszego znaku za pomocą LCD_WriteData :( Nie miałem czasu analizować źródeł, nie mam też możliwości JTAG. A! ATmega128@16MHz, 5V. Miał ktoś podobne problemy? Słyszałem niepochlebne opinie AS5, ale mimo to chciałem spróbować, żeby nie zostać w tyle... Projekciki mogę gdzieś umieścić, może po południu.

Michał

Reply to
Michał Lankosz
Loading thread data ...

Cześć,

zdaje się, że mam podobne objawy. Kompilacja na Atmega64 z AS4 działa, a z AS5 nie do końca... No i czemu rózny jest rozmiar kodu? Kompilator przecież ten sam, opcej kompilacji te same.

Maciek

Użytkownik "Michał Lankosz" snipped-for-privacy@tlen.pl napisał w wiadomości news:ji7g9o$e47$ snipped-for-privacy@inews.gazeta.pl...

Reply to
Maciek

Link do projektów pod AS4 i AS5:

formatting link
że jakiś zapis w kodzie jest nieprawidłowy...

Michał

Reply to
Michał Lankosz

Michał Lankosz snipped-for-privacy@tlen.pl napisał(a):

A nie mógłyś normalnie, po ludzku, wystawić ZIPa? Chyba, że przeoczyłem jak można ściągnąć całość naraz.

Reply to
Grzegorz Niemirowski

Maciek snipped-for-privacy@interia.pl napisał(a):

Na pewno ten sam? Sprawdź wersję kompilatora. Nowsze wersje GCC dają z jakiegoś powodu większy kod, już było o tym na grupie.

Reply to
Grzegorz Niemirowski

Michał Lankosz snipped-for-privacy@tlen.pl napisał(a):

Jesteś pewien? Moim zdaniem plik hd44780.c nie ma prawa znać tego symbolu w projekcie dla wersji 5.

Nie :) Moim zdaniem nie przeniosłeś poprawnie projektu z wersji 4 do 5.

Jakie opinie? Mnie zmartwiło zaprzestanie obsługi starszych JTAGów, czasem też dziwnie zachowuje się debugger. Ogólnie jednak jest bardzo przyjemnie dzięki oparciu softu o Visual Studio Isolated Shell.

Przy okazji zaciekawiło mnie takie coś:

LCD_E_PORT |= LCD_E; _LCD_OutNibble(dataToWrite >> 4); LCD_E_PORT &= ~LCD_E; LCD_E_PORT |= LCD_E; _LCD_OutNibble(dataToWrite);

Czy to nie jest za szybko? Czy nie powinno być jakiegoś, choćby mikrosekundowego, opóźnienia po ustawieniu stanu linii E?

Reply to
Grzegorz Niemirowski

Impuls na E (stan wysoki) powinien trwać minimum 450 ns Dane powinny być stabilne miniumum 195 ns przed opadającym zboczem E i minimum 10 ns po. Między tymi narastającymi zboczami na E minimum 1 µs. Nie podają ile może trwać stan niski, ale zakładam, że minimum te 10 ns powyżej. Brzydko jest to zrobione. Może przez to nie działać

Reply to
shg

W dniu 2012-02-24 22:24, Grzegorz Niemirowski pisze:

Przepraszam, nie wiedziałem i nie sprawdziłem, że Gugiel pokaże podgląd zipa. ZIP tutaj:

formatting link
Michał

Reply to
Michał Lankosz

W dniu 2012-02-24 22:51, Grzegorz Niemirowski pisze:

Mea culpa! Nie wiem, dlaczego nie zauważyłem ostrzeżenia... mogłoby to być jakoś lepiej zrobione w AS5, a ja ręcznie przełączam na 'Error list'... czasem. Teraz przyczepiłem sobie okienko tak, żeby było widoczne. Definicję F_CPU dodałem jednak do do okienka 'Defined symbols' w opcjach Toolchain. Chyba tak lepiej, niż doczepianie do każdego kolejnego pliku kolejnego pliku nagłówkowego z definicją F_CPU.

Fakt, niezbyt ładnie mimo, że działa. Kiedyś popełniałem swoje wersje obsługi LCD, również w asm, ale jakoś ostatnio przyjęła mi się ta biblioteka. Na wszelki wypadek wstawiłem w kilku miejscach wymagane przez HD44780 opóźnienia (mniej więcej).

Michał

Reply to
Michał Lankosz

Grzegorz Niemirowski snipped-for-privacy@poczta.onet.pl> napisał(a):

Zrobiłem teraz upgrade z 5.0 do 5.1 i JTAG przestał działać, tzn. działa zupełnie losowo, widać ewidentne przekłamania, np. jak zczytuje sygnaturę atmegi to potrafi w dwóch bajtach ustawić wszystkie bity na 1. Co za badziew.

Reply to
Grzegorz Niemirowski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.