Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 5 gru 2024, o 02:38


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 17 sty 2015, o 13:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 cze 2013
Posty: 988
Lokalizacja: Byram, MS 39272
Pomógł: 55

Witam szanownych oraz szanowanych forumowiczów.
Mam taki problem
Kupiłem jakiś czas temu wyświetlacz do NOKIIA 3310 (84x84). Dostałem razem z nim bibliotekę do obsługi. Niestety ta SunRiver'owa biblioteka nie działa z tym wyświetlaczem. Nie ma to znaczenia. Znaczenie natomiast ma, że bibliotek jest napisana tak aby odczytywać obrazki w tym dane dla fontów z pamięci RAM. Przerobiłem ją sobie aby mimo wszystko odczytywała obrazki z pamięci FLASH i tu pojawił się problem. O ile nie ma żadnego problemu przy wyświetlaniu fontów i małych obrazków to w przypadku obrazków większych (np 84x84) pojawia mi się tylko pół obrazka, a drugie pół to jakieś krzaki w dodatku wszystko jest przesunięte w fazie. W przypadku odczytu z pamięci RAM ten problem się nie pojawia

A oto kod przed zmianą
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


i po zmianie

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Czy ktoś może wie dlaczego tak się dzieje?

_________________
Pomysły na podpis - wyślij SMSa +1 769 243 0011



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 sty 2015, o 15:33 
Offline
Użytkownik

Dołączył(a): 29 wrz 2014
Posty: 28
Pomógł: 5

Spróbuj zamiast tej funkcji:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

użyć tego:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Ta pierwsza służy do odczytywania tablic krótkim adresie komórek, a Twoja tablica jest dość duża.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 sty 2015, o 16:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 cze 2013
Posty: 988
Lokalizacja: Byram, MS 39272
Pomógł: 55

A zapomniałem dodać, że z far też próbowałem. To była moja pierwsza myśl :)

Znaczy inaczej. Po użyciu far dostaje błąd kompilacji

Error 2 undefined reference to `pgm_read_byte_far'

Mimo, że funkcja zaimplementowana jest w avr/pgmspace.h

Plus ostrzeżenie

Warning 1 implicit declaration of function 'pgm_read_byte_far' [-Wimplicit-function-declaration]

------------------------ [ Dodano po: 55*60*1000000 nanosekundach ]

A tak przy okazji wydaje mi się, że far służy do odczytu pamięci powyżej 64kB. W Atmega 8/16/32. z których korzystam raczej nie będę miał tego problemu

_________________
Pomysły na podpis - wyślij SMSa +1 769 243 0011



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 sty 2015, o 19:05 
Offline
Użytkownik

Dołączył(a): 22 gru 2013
Posty: 296
Lokalizacja: Szczecin
Pomógł: 47

No to jaki konkretnie procesor?
Bo jeżeli mega8 to przy tablicy 7kB (plus program), może już adresacja pgm_read wychodzi ponad 8kB.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 sty 2015, o 19:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 cze 2013
Posty: 988
Lokalizacja: Byram, MS 39272
Pomógł: 55

MEGA16, jakby wychodziła to równoznaczne byłoby to też z przekroczeniem miejsca w pamięci FLASH i nieskompilowaniem programu. Przynajmniej tak mi się wydaje. Zresztą obrazek 84x84 to raptem 882 bajty więc nawet w RAMie się mieści.

_________________
Pomysły na podpis - wyślij SMSa +1 769 243 0011



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 sty 2015, o 19:54 
Offline
Użytkownik

Dołączył(a): 22 gru 2013
Posty: 296
Lokalizacja: Szczecin
Pomógł: 47

Przemnożyłem i zapomniałem, że to bity a nie bajty,
a co do kompilacji tu jest fragment z konsoli Eclipsa ( oryginalnie program na na M2560);
.......
Device: atmega328p

Program: 125766 bytes (383.8% Full)
(.text + .data + .bootloader)

Data: 2008 bytes (98.0% Full)
(.data + .bss + .noinit)

EEPROM: 1 bytes (0.1% Full)
(.eeprom)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 sty 2015, o 21:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 cze 2013
Posty: 988
Lokalizacja: Byram, MS 39272
Pomógł: 55

nie wiem co oznacza Twòj log ale przy obrazku 84x84 zajętošć flasha wzrośnie tylko o niecale 900 bajtów.

_________________
Pomysły na podpis - wyślij SMSa +1 769 243 0011



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 sty 2015, o 21:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Może rozbić tak żeby zapis do wyświetlacza podzielić na dwie funkcje,
to znaczy najpierw odczytać z flash do zmiennej tymczasowej
a potem zapisać tą zmienną do wyświetlacza.

Po odczytani połowy można zrobić zapis do wyświetlacza od początku
Wtedy sprawdziłbyś czy błędnie odczytuje z flash czy błąd jest w
zapisie do wyświetlacza



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 sty 2015, o 22:09 
Offline
Użytkownik

Dołączył(a): 22 gru 2013
Posty: 296
Lokalizacja: Szczecin
Pomógł: 47

Mój log oznacza tylko to, że kompilator nie zwrócił "uwagi", że czterokrotnie przekroczył obszar pamięci programu
( 32KB Flash dla M328, a skompilował ok. 120KB )



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 sty 2015, o 23:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 cze 2013
Posty: 988
Lokalizacja: Byram, MS 39272
Pomógł: 55

Zawsze moge używać dwóch polòwek zamiast calego rysunku ale to nie wyjśnia skąd proble.

Ja nie używam eclipse więc mòj kompilator krzyczy jak jest bląd tego typu.
Wież mi nie wyszedlem poza flasha.

_________________
Pomysły na podpis - wyślij SMSa +1 769 243 0011



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO