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



Teraz jest 22 lut 2026, o 21:00


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 27 ] 
Autor Wiadomość
PostNapisane: 20 lis 2013, o 22:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 maja 2012
Posty: 162
Pomógł: 6

WItam,
gdzieś ostatnio widziałem taką konstrukcję (może ktoś wie gdzie ja to mogłem widzieć??):
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

może mi ktoś to wyjaśnić?

Czy ja to dobrze rozumiem?
strigtable[] jest tablicą wskaźników na stringi umieszczone w klamrach? Wychodzi na to, że każdy z elementów tablicy, np.: "aaaaaaaaaaaa" jest wskaźnikiem przechowującym adres stringa "aaaaaaaaaaaa"?????
I powiedzmy stringtable[0] przechowuje adres pierwszego elementu ciągu "aaaaaaaaaaaa"
czy odwołując się do *(stringtable[6] +1) otrzymam literę f ???



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

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

aaadamw napisał(a):
czy odwołując się do *(stringtable[6] +1)


a gdzie kolega widzi element o indeksie 6 w tej tablicy ? ;) takiego nie ma i wystąpi błąd o przekroczeniu zakresu tablicy ale jeśli odwołasz się tak:

*(stringtable[5] +1)

to jak najbardziej będzie to "f"

_________________
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 23:53 
Offline
Moderator
Avatar użytkownika

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

Gwyn - kompilator w RAM ładnie zrobi sobie stringi oddzielnie a w tablicy

char *stringtable[]

umieści ładnie wskaźniki do nich i wszystko będzie ładnie działać - tylko jak pisałem wyżej - kolega przekroczył zakres w swoim przykładzie

_________________
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: 21 lis 2013, o 08:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 maja 2012
Posty: 162
Pomógł: 6

mirekk36 napisał(a):
aaadamw napisał(a):
czy odwołując się do *(stringtable[6] +1)


a gdzie kolega widzi element o indeksie 6 w tej tablicy ? ;) takiego nie ma i wystąpi błąd o przekroczeniu zakresu tablicy ale jeśli odwołasz się tak:

*(stringtable[5] +1)

to jak najbardziej będzie to "f"


tak,wiem że tu nie ma szóstego elementu, pomyłka... jak pisałem posta w tablicy miałem 10 elementów, potem usunąłem kilka, a nie zmieniłem indeksu na 5 w pytaniu.

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


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


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


to jest OK

DLaczego muszę deklarować ilość znaków w stringu?



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

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lis 2013, o 09:48 
Offline
Użytkownik

Dołączył(a): 20 wrz 2013
Posty: 647
Zbananowany użytkownik

Pomógł: 101

.



Ostatnio edytowano 6 lis 2015, o 13:45 przez xor, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lis 2013, o 09:51 
Offline
Moderator
Avatar użytkownika

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

xor napisał(a):
Gdyby w 1 przykładzie wyrównać wszystkie stringi do tej samej długości to pewnie też by zadziałało


Bez wyrównania też zadziała ... i działa - tylko chyba panowie nie zauważyliście mojego postu co ? ;)

post57917.html#p57917

oczywiście że zadziała i z tego pierwszego przykładu będzie to "f" - o ile zmieni się indeks na 5 zamiast 6 jak tam omyłkowo kolega podał

------------------------ [ Dodano po: kilkunastu sekundach ]

a zadziała bo:

post57924.html#p57924

_________________
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: 21 lis 2013, o 10:01 
Offline
Użytkownik

Dołączył(a): 20 wrz 2013
Posty: 647
Zbananowany użytkownik

Pomógł: 101

.



Ostatnio edytowano 6 lis 2015, o 13:45 przez xor, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lis 2013, o 10:48 
Offline
Moderator
Avatar użytkownika

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

Ale jak przez program?

jak masz zmienną

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


która jest tablicą wskaźników i ją INICJALIZUJESZ danymi przecież jeszcze nie w programie, to kompilator, umieszcza sobie sam dwa elementy (dwa stringi) "ala1" oraz "ala2" w sekcji .text (czyli w pamięci Flash procka) a następnie tworzy tablicę wskaźników i inicjalizuje każdy z tych wskaźników - tak aby wskazywały właśnie na poszczególne elementy/stringi ... ;)

_________________
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: 21 lis 2013, o 11:17 
Offline
Użytkownik

Dołączył(a): 20 wrz 2013
Posty: 647
Zbananowany użytkownik

Pomógł: 101

.



Ostatnio edytowano 6 lis 2015, o 13:46 przez xor, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lis 2013, o 11:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 maja 2012
Posty: 162
Pomógł: 6

mirekk36 napisał(a):
Ale jak przez program?

jak masz zmienną

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


która jest tablicą wskaźników i ją INICJALIZUJESZ danymi przecież jeszcze nie w programie, to kompilator, umieszcza sobie sam dwa elementy (dwa stringi) "ala1" oraz "ala2" w sekcji .text (czyli w pamięci Flash procka) a następnie tworzy tablicę wskaźników i inicjalizuje każdy z tych wskaźników - tak aby wskazywały właśnie na poszczególne elementy/stringi ... ;)


czyli jeżeli np. wyświetlę na wyświetlaczu:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


ale jeżeli już w funkcji main zrobię coś takiego:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


------------------------ [ Dodano po: 28 minutach ]

a nie biędzie tak, że dopiero jak zrobimy tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


to będzie to w FLASH???

------------------------ [ Dodano po: 29 minutach ]

chyba już się pogubiłem w tym wszystkim...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lis 2013, o 11:57 
Offline
Moderator
Avatar użytkownika

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

poczekaj poczekaj - ty podałeś przykład z definicją tablicy wskaźników w RAM i to zadziała tak jak trzeba tyle że oczywiście teksty w tej tablicy (nie wiem czy zdajesz sobie z tego sprawę i tak jako STAŁE DOSŁOWNE) wylądują we Flash po to aby w jednej z sekcji INITx były przekopiowane do RAM ... - więc nie opłaca się tworzyć takich tablic w pamięci RAM)

a jeśli to ma być tablica wskaźników w pamięci flash to tak:

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


wtedy w ogóle nie tracisz RAM'u niepotrzebnie ;)

teraz jaśniej ? w sumie to się cieszę że poruszyłeś to ważne zagadnienie - warto to zrozumieć dobrze

------------------------ [ Dodano po: 2 minutach ]

xor napisał(a):
W jaki sposób odwołanie gdzieś w programie do elementu poza tablicą miało by mieć wpływ na błędy kompilacji?


Ja się troszkę zwykle dziwię takim pytaniom bo po co teoretyzować - wpisz tablicę i w kodzie odwołaj się wprost do nieistniejącego elementu - zobaczysz że dostaniesz błąd czy tam warning ;) nie ma że boli

chyba że będzie taki indeks wyrażeniem - czyli będzie obliczany w locie i nie będzie kompilator w stanie przewidzieć tego co się stanie to wtedy nie da żadnego ostrzeżenia i to są najgorsze tzn najcięższe do znalezienia błędy ;)

------------------------ [ Dodano po: 4 minutach ]

xor napisał(a):
error: array type has incomplete element type 


na to już padła odpowiedź - nie może być tablica wielowymiarowa w C gdzie nie jest podany żaden rozmiar podczas jej inicjalizacji. A to spowoduje że będzie trzeba zrobić ją trochę na wyrost - większą ... jeśli stringi będą różnej długości tzn dopasować do najdłuższego.

_________________
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: 21 lis 2013, o 13:02 
Offline
Użytkownik

Dołączył(a): 20 wrz 2013
Posty: 647
Zbananowany użytkownik

Pomógł: 101

.



Ostatnio edytowano 6 lis 2015, o 13:46 przez xor, łącznie edytowano 1 raz

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

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

xor napisał(a):
Ja tam nie dostaję żadnego warninga ani tym bardziej błędu (mówię o przykładzie z pierwszego postu wątku). No ale być może lepszy kompilator by to wychwycił. Chociaż ja nie spotkałem się z takim który by to robił (kontrolę przekroczenia indeksu). No ale niewiele znam kompilatorów C oprócz gcc więc być możę żyję w ignorancji


ależ zwykły AVR GCC pokazuje warnigna tylko ... tylko jeśli masz włączoną opcję przy kompilacji "disable pedantic warnings" czy jakoś tak - jak to bywa w kocim Atmel Studio domyślnie to się nie dziw - że nie widzisz warningów ... tzn nie wiem czy akurat używasz kociego atmel studio ale wiem że tam domyślnie takie warningi są wyłączone na pohybel początkującym ... za to w Eclipse to działa

a zresztą sam zobacz:

Obrazek

i jak ? ;) nigdy tego nie widziałeś ? ...

_________________
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: 21 lis 2013, o 13:44 
Offline
Użytkownik

Dołączył(a): 20 wrz 2013
Posty: 647
Zbananowany użytkownik

Pomógł: 101

.



Ostatnio edytowano 6 lis 2015, o 13:47 przez xor, łącznie edytowano 1 raz

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

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

ale to ty nie używasz optymalizacji -Os ???? ja TYLKO i wyłącznie na AVR tego używam

_________________
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: 21 lis 2013, o 14:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 maja 2012
Posty: 162
Pomógł: 6

mirekk36 napisał(a):
a jeśli to ma być tablica wskaźników w pamięci flash to tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

wtedy w ogóle nie tracisz RAM'u niepotrzebnie


ale wtedy jest tylko tablica wskaźników we FLASH, a co ze stringami "ala1" i "ala2" ?? gdzie one się znajdują?



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

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

aaadamw napisał(a):
ale wtedy jest tylko tablica wskaźników we FLASH, a co ze stringami "ala1" i "ala2" ?? gdzie one się znajdują?


też w pamięci FLASH w obszarze .text - czyli program memory inaczej mówiąc tam gdzie jest kod programu. ;) tyle że stringi te nie są dostępne ot tak luzem przez nazwę tablicy bo jak ? ;)


Zresztą jak definiujesz coś takiego niby w RAM:

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


albo coś takiego:

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


to obydwa stringi będą w pdobnym miejscu we Flash - zwykle na końcu wsadu ;)

_________________
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: 21 lis 2013, o 14:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 maja 2012
Posty: 162
Pomógł: 6

ok, to jak teraz wyświetlić te napisy:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lis 2013, o 14:22 
Offline
Użytkownik

Dołączył(a): 20 wrz 2013
Posty: 647
Zbananowany użytkownik

Pomógł: 101

.



Ostatnio edytowano 6 lis 2015, o 13:47 przez xor, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lis 2013, o 14:40 
Offline
Moderator
Avatar użytkownika

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

aaadamw napisał(a):
ok, to jak teraz wyświetlić te napisy:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



np:

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


albo

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


albo

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



albo jeszcze tysiąc innych dowolnych sposobów ;)

_________________
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: 21 lis 2013, o 15:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 maja 2012
Posty: 162
Pomógł: 6

kompilować się kompiluje, ale nie działa, wywala krzaki na LCD



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

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

aaadamw napisał(a):
kompilować się kompiluje, ale nie działa, wywala krzaki na LCD


Nie rzucam słów na wiatr bo używam tego nie raz i nie dwa ... więc jeśli już piszesz że coś nie działa - to chociaż zlituj się pan i pokaż co i jak piszesz - jakiś przykład kodu, jakiś zrzut ekranu, jakie błędy itp

bo na takie pytanie hmm w zasadzie dziwne stwierdzenie to mogę tylko odpowiedzieć:

no to trudno - mi działa :(

_________________
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: 21 lis 2013, o 15:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 maja 2012
Posty: 162
Pomógł: 6

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





jak wywalę PROGMEM i wyświetlam lcd_str() to jest OK.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lis 2013, o 18:22 
Offline
Moderator
Avatar użytkownika

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

aaadamw ---> prowadzę dwa (wydawało mi się) podobne tematy w tym samym czasie: zobacz tu:

topic4855.html

i przez to niechcący mi się pokrębasiło na maxa - przez co wprowadziłem ciebie i innych w błąd w tym wątku - swoimi wywodami za co bardzo przepraszam ... ale już postaram się to naprawić ....

otóż taka konstrukcja nie ma sensu totalnie:

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


bo czy chcesz czy nie to te stringi zostaną utworzone w pamięci RAM :( ... oczywiście żeby się tam mogły znaleźć to także znajdą się chociaż bezużyteczne w pamięci FLASH .... i dlatego żeby się do nich dobierać trzeba by było posługiwać się

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


a nie

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


a to przecież nie ma sensu - bo jeśli stringów miałbyś dużo to zapaćkałbyś całą pamięć RAM szczególnie w jakimś małym procku AVR

dlatego trzeba ew postąpić tak jak piszę o tym w artykule na blogu:

http://mirekk36.blogspot.com/2013/11/ta ... ogmem.html

czyli twoja tablica jeśli miała by być w pamięci FLASH to MUSIAŁABY być tak zdefiniowana:

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


i DOPIERO teraz możesz się do tych stringów odwoływać w kodzie źródłowym tak:

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


gdzie idx to numer indeksu tej tablicy wskaźników

sprawdź - teraz powinno działać - i jeszcze raz sorki za wprowadzenie w błąd po drodze

_________________
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: 22 lis 2013, o 08:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 maja 2012
Posty: 162
Pomógł: 6

mirekk36 napisał(a):
czyli twoja tablica jeśli miała by być w pamięci FLASH to MUSIAŁABY być tak zdefiniowana:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

DOPIERO teraz możesz się do tych stringów odwoływać w kodzie źródłowym tak:


dobrze że się wszystko wyjaśniło, bo już tak mi się wszystko pomieszało, że koniec świata :p

ale czy w tym przypadku same stringi tab2[], tab3[], tab4[] nie będą też w RAM?
chyba tylko stringtable wyląduje we FLASH?
a da się zrobić to tak??:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lis 2013, o 09:11 
Offline
Moderator
Avatar użytkownika

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

aaadamw napisał(a):
ale czy w tym przypadku same stringi tab2[], tab3[], tab4[] nie będą też w RAM?
chyba tylko stringtable wyląduje we FLASH?
a da się zrobić to tak??:


oczywiście że tak wręcz trzeba ... eeeeh ... no ja mam ostatnio pomroczność jasną - zobacz że na blogu dobrze to pokazałem:

http://mirekk36.blogspot.com/2013/11/ta ... ogmem.html

a tu znowu zjadło mi te PROGMEM w poście wyżej w ostatnim przykładzie - ale już i w tym poście to poprawiłem

niestety - przygotowując się do napisania tego brałem eclipse w łapki z zestawem ATB i testowałem na LCD dziesiątki wariantów żeby to jak najlepiej przedstawić a niechcący czasem (nie wiem jak to się dzieje) wklejam zły fragment kodu ....

ostatecznie tak jak piszesz i tak jak to poprawiłem wyżej i tak jak na blogu każdy ze stringów składowych też musi być we flash (PROGMEM) jeśli chcemy aby wszystko było we flash a RAM pusty

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  
PostNapisane: 22 lis 2013, o 11:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 maja 2012
Posty: 162
Pomógł: 6

dzięki,
trochę mi się to w głowie poukładało... :)



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

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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO