RTV forum PL | NewsGroups PL

Kompilacja kodu do LCD w AVR Studio 5.1 - dlaczego nie działa na ATmega128?

Program w AVR Studio 4 działa, w 5.1 nie

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Kompilacja kodu do LCD w AVR Studio 5.1 - dlaczego nie działa na ATmega128?

Michał Lankosz
Guest

Fri Feb 24, 2012 9:04 am   



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
http://radzio.dxp.pl/hd44780/
w 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 Sad 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ł

Maciek
Guest

Fri Feb 24, 2012 10:01 am   



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" <mike2001@tlen.pl> napisał w wiadomości
news:ji7g9o$e47$1@inews.gazeta.pl...
Quote:
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
http://radzio.dxp.pl/hd44780/
w 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 Sad 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ł


Michał Lankosz
Guest

Fri Feb 24, 2012 10:08 pm   



Link do projektów pod AS4 i AS5: http://tinyurl.com/6nbt4qv
Może jakiś zapis w kodzie jest nieprawidłowy...

Michał

Grzegorz Niemirowski
Guest

Fri Feb 24, 2012 10:24 pm   



Michał Lankosz <mike2001@tlen.pl> napisał(a):
Quote:
Link do projektów pod AS4 i AS5: http://tinyurl.com/6nbt4qv
Może jakiś zapis w kodzie jest nieprawidłowy...
Michał

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

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 7 days, 3 hours, 0 minutes and 56 seconds

Grzegorz Niemirowski
Guest

Fri Feb 24, 2012 10:36 pm   



Maciek <fornes@interia.pl> napisał(a):
Quote:
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.

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

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 7 days, 3 hours, 12 minutes and 24 seconds

Grzegorz Niemirowski
Guest

Fri Feb 24, 2012 10:51 pm   



Michał Lankosz <mike2001@tlen.pl> napisał(a):
Quote:
F_CPU to samo

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

Quote:
Miał ktoś podobne problemy?

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

Quote:
Słyszałem niepochlebne opinie AS5, ale mimo to chciałem spróbować, żeby
nie zostać w tyle...

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?

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 7 days, 3 hours, 19 minutes and 38 seconds

shg
Guest

Sat Feb 25, 2012 12:57 am   



On Feb 24, 10:51 pm, "Grzegorz Niemirowski"
<gnthexfi...@poczta.onet.pl> wrote:
Quote:
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?

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

Michał Lankosz
Guest

Sat Feb 25, 2012 9:58 pm   



W dniu 2012-02-24 22:24, Grzegorz Niemirowski pisze:
Quote:
Michał Lankosz <mike2001@tlen.pl> napisał(a):
Link do projektów pod AS4 i AS5: http://tinyurl.com/6nbt4qv
Może jakiś zapis w kodzie jest nieprawidłowy...
Michał

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


Przepraszam, nie wiedziałem i nie sprawdziłem, że Gugiel pokaże podgląd
zipa. ZIP tutaj: http://tinyurl.com/6mkawkk

Michał

Michał Lankosz
Guest

Sat Feb 25, 2012 11:13 pm   



W dniu 2012-02-24 22:51, Grzegorz Niemirowski pisze:
Quote:
Michał Lankosz <mike2001@tlen.pl> napisał(a):
F_CPU to samo

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

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.

Quote:
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?

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ł

Grzegorz Niemirowski
Guest

Sun Feb 26, 2012 1:47 am   



Grzegorz Niemirowski <gnthexfiles@poczta.onet.pl> napisał(a):
Quote:
Słyszałem niepochlebne opinie AS5, ale mimo to chciałem spróbować, żeby
nie zostać w tyle...
Jakie opinie?
Mnie zmartwiło zaprzestanie obsługi starszych JTAGów, czasem też dziwnie
zachowuje się debugger.

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.

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 8 days, 6 hours, 22 minutes and 49 seconds

elektroda NewsGroups Forum Index - Elektronika Polska - Kompilacja kodu do LCD w AVR Studio 5.1 - dlaczego nie działa na ATmega128?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map