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



Teraz jest 24 kwi 2026, o 06:11


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 20 lis 2013, o 11:55 
Offline
Nowy

Dołączył(a): 28 lip 2012
Posty: 14
Pomógł: 0

Witam
Prosiłbym o poradę w sprawie obsługi pamięci flash w mikrokontrolerach AVR. Otóż chciałbym zrobić wielojęzykowe menu i mam problem z odwoływaniem się do napisów zadeklarowanych w pamięci flash.
Przejdę od razu do kodu .

Deklaracja przykładowego słowa w dwóch językach:

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


Funkcja wyświetlającej tekst na ekranie:

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


Zmienna rodzaj języka przyjmuje dwie wartości 0 - j.polski 1 - j.angielski

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


Ogólnie rzecz biorąc program działa poprawnie ale kompilator wyrzuca warning:

warning: passing argument 1 of 'GLCD_WriteString' from incompatible pointer type

Pisze tutaj, ponieważ już bardzo długo nie mogę sobie z tym poradzić.
Prosiłbym o wytłumaczenie czemu typ przekazywanego wskaźnika jest niekompatybilny z tym co ma być przekazane oraz o możliwości rozwiązania tego problemu.
Dodam że korzystam z AvrStudio4.
Pozdrawiam

Kody wklejamy przy pomocy syntax=c - Różowy J.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lis 2013, o 13:47 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27459
Lokalizacja: Szczecin
Pomógł: 1045

I bardzo dobrze że wywala ci takie błędy ;)

wciąż piszę o tym - że po co ludzie używacie w AVR GCC typów

unsigned char ? hmmm ?

użyj char - bo i tak jest każdy char domyślnie zamieniany na unsigned a za to nie powoduje to później warningów - tak jest domyślnie ustawiona konfiguracja kompilacji w AVR GCC - jak myślisz po co ? ... ano po to żeby nie trzeba było klepać bez sensu tego unsigned przed char

to po pierwsze

a po drugie jak czytasz z FLASH bajt - to nie pgm_read_word tylko pgm_read_byte

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lis 2013, o 14:30 
Offline
Nowy

Dołączył(a): 28 lip 2012
Posty: 14
Pomógł: 0

Dziękuje za odpowiedź.
Po uwagach zmieniłem kod w następujący sposób:

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



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


Warning cały czas występuje, natomiast jeśli chodzi o :

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


to odczytuje adresy moich napisów w różnych językach, które są zawarte w tablicy napis_tak. Dlatego też odczytuje dwa bajty (word).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lis 2013, o 15:42 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27459
Lokalizacja: Szczecin
Pomógł: 1045

ok sorry nie zauważyłem że przypisujesz wskaźnik w tej linii z pgm_read_word() ... więc taki zapis jest OK i nie zgłasza żadnych warningów

jak masz argumenty do funkcji x, i y - i są to liczby a nie stringi - to daj z kolei uint8_t zamiast char jeśli program ma być przejszysty

ale jeszcze sprawdzę co z tymi pierwszymi warningami - chwila

------------------------ [ Dodano po: 53 minutyach ]

no tak tablica napis_tak[] też musi być const a zatem ;)

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

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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