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



Teraz jest 27 kwi 2024, o 17:07


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 14 ] 
Autor Wiadomość
PostNapisane: 20 sie 2012, o 12:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 kwi 2012
Posty: 195
Pomógł: 0

1.) Witam, nie za bardzo rozumiem skąd wynikają różnice podczas wyświetlania znaków z pamięci Flash i EEPROM (str 218) .
2.) Czemu w zapisie z EEPROM dokonano rzutowania wskaźnika *str (z char) na (uint_8t) ??

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: 20 sie 2012, o 14:19 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Tutaj znajdziesz wszystkie funkcje: http://www.nongnu.org/avr-libc/
Spójrz na prototyp funkcji eeprom_read_byte tutaj: http://nongnu.org/avr-libc/user-manual/ ... eprom.html
Rzutowanie wykonuje się, aby kompilator nie ostrzegał przed różnicą pomiędzy typem argumentów formalnych - jak w prototypie funkcji, a aktualnych - użytych podczas wywołania funkcji. Jak wykonasz rzutowanie to kompilator domyśli się, że wiesz co robisz i nie upomni cię że coś może być nie tak.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 sie 2012, o 14:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 kwi 2012
Posty: 195
Pomógł: 0

OK Krauser, chyba zakumałem chodzi o to że takie wywołanie funkcji dla epprom spowoduje że zamiast char którego nie rozumie - po prostu odczyta znak w ASCII.
Pozostaje jeszcze kwestia warunku :

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


Rozumiem że przerwie wykonywanie while () ale nie rozumiem jak ten warunek jest sprawdzany

P.S. Krauser dzięki za pomoc
Cytuj:
Jest to spowodowane tym, że funkcje się dosyć mocno różnią. Są zupełnie inaczej interpretowane przez kompilator. eeprom_read_byte przyjmuje uint8_t, a pgm_read_byte na typie uint16_t. Jest to jeszcze bardziej zagmatwane i lepiej się w to nie wgłębiać, tylko korzystać :)

Sorry ale to nie jest metoda- oczywiście dziękuję za zainteresowanie. Polecam przeczytać to co napisał Krauser i dodatkowo to -> http://www.nongnu.org/avr-libc/user-man ... space.html
Lepiej coś raz zrozumieć i wiedzieć jak działa niż stosować bezwiednie - bo potem są problemy - wiem z doświadczenia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 sie 2012, o 14:43 
Offline
Moderator
Avatar użytkownika

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

Pamięć EEPROM gdy jest skasowana to wypełniona jest bajtami o wartości 0xFF a nie 0x00. Dlatego żeby nie nastąpił błąd podczas sprawdzania końca C-Stringa, który musi być zakończony zerem - potraktujemy w tym warunku 0xff tak jak byłoby to zero, czyli zakończy się odczytywanie łańcucha obojętnie czy natrafimy na zero

!znak

lub gdy natrafimy na 0xff

znak==0xFF


Autor postu otrzymał pochwałę

_________________
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 sie 2012, o 14:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 kwi 2012
Posty: 195
Pomógł: 0

:D Dzięki za pomoc, wracam do studiowania materiału !!!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lis 2012, o 13:44 

Pomógł: 0

Mam "głupie" pytanie na które nie umiem znaleźć odpowiedzi związane z funkcją lcd_str_E();

Stworzyłem sobie tablice napisów w EEPROM (by można je potem edytować z poziomu np. menu w programie)

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


teraz chcę wyświetlić na LCD napis np. Psiarnia

i z tego co wywnioskowałem analizując funkcję lcd_str_E
wystarczy, że wywołam ją
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


czy trzeba jakoś inaczej ją wywołać?



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lis 2012, o 13:53 
Offline
Moderator
Avatar użytkownika

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

No tak trzeba właśnie użyć ;)

_________________
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: 19 lis 2012, o 14:10 

Pomógł: 0

To dziwne, bo po napisach ani śladu

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


a się pojawia, bez żadnych przerw jednym ciągiem, tak jak by lcd_str_E w ogóle nie następował....hmmmm

specjalnie napisałem tylko taki krótki programik by wyeliminować inne błędy. Oczywiście biblioteki bez zmian tak jak je pan bóg, znaczy się Mirek umieścił na DVD (z erraty).



Ostatnio edytowano 19 lis 2012, o 14:12 przez rezasurmar, łącznie edytowano 1 raz

Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lis 2012, o 14:11 
Offline
Moderator
Avatar użytkownika

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

a zaznaczyłeś pan w Eclipse żeby wgrał ci do pamięci EEPROM zdefiniowane zmienne ? ;) bo jeśli nie to się nic nie pojawi i tak ma być ;)

_________________
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: 19 lis 2012, o 14:12 

Pomógł: 0

Aaaaaa dobra, ale żem tempy ;). To jest tak jak człowiek nigdy czegoś nie używał, to potem nie wie gdzie nawet zajrzeć ;).

PS. jest możliwość by raz nagrać EEPROMA, a potem przy każdej kompilacji już nie był kasowany i nagrywany ???,



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lis 2012, o 08:00 

Pomógł: 0

O i to jest świetna porada, pokazać gdzie szukać, a nie podawać na tacy :D, dzięki. Zapomniałem o takiej możliwości 51' znałem od podszewki, AVRy trochę gorzej ;).



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lis 2012, o 11:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 gru 2011
Posty: 450
Pomógł: 4

rezasurmar napisał(a):
Aaaaaa dobra, ale żem tempy ;). To jest tak jak człowiek nigdy czegoś nie używał, to potem nie wie gdzie nawet zajrzeć ;).

PS. jest możliwość by raz nagrać EEPROMA, a potem przy każdej kompilacji już nie był kasowany i nagrywany ???,


Nie jesteś odosobnionym przypadkiem :lol:
Na szczęście, po 30 minutach sprawdzania, dlaczego napisy z pamięci Flash dają się wyświetlić, a z EEPROM nie, zajrzałem tam przypomniawszy sobie, że już kiedyś ktoś podpowiadał, że trzeba to zaznaczyć w Eclipsie. I poszło. Ale zagwozdka była, przyznaję.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 sty 2013, o 20:49 
Offline
Nowy

Dołączył(a): 06 sty 2013
Posty: 12
Pomógł: 0

Mam pytanie odnośnie odczytywania stringów z pamięci.

Jaka jest różnica czy wyświetlam na lcd napisy z pamięci RAM, Flash czy EPROM?



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

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

wahuu napisał(a):
Mam pytanie odnośnie odczytywania stringów z pamięci.

Jaka jest różnica czy wyświetlam na lcd napisy z pamięci RAM, Flash czy EPROM?


a powiedz mi - czytałeś dokładnie rozdział o multipleksowaniu wyświetlaczy LED ? nie na darmo o to pytam ?

_________________
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: 14 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 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