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

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

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

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