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



Teraz jest 30 mar 2026, o 20:58


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 39 ]  Przejdź na stronę 1, 2  Następna strona
Autor Wiadomość
PostNapisane: 9 sie 2012, o 21:28 
Offline
Moderator
Avatar użytkownika

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

Sorki ale konwersja działa dobrze, a pozostałe części pytania i stwierdzenia troszkę jakby wyrwane z kontekstu - w ogóle nie pozwalają mi domyśleć się co może być nie tak .... zadajesz takie pytania i ani jednej linii kodu czy schematu żeby można było sprawdzić co robisz źle? coś podpowiedzieć ?

dość osobliwe podejście ;)

ja umiem odpowiedzieć z tego może tylko na dwa pytania :

1. nie trzeba wcześniej jakoś specjalnie kasować pamięci ;)
2. żaden string w żadnej pamięci nie zostanie sobie sam podzielony na żadne części ;) pamięć nic nie dzieli, sama nic nie robi - to ty do niej zapisujesz i odczytujesz

ale ja straciłem już orientację bo nie dość że jak mówię brak kodów, schematów, ze sto pytań w jednym no i stwierdzenia że kod z książki błędnie działa a do tego jeszcze piszesz o dwóch rodzajach pamięci 24c08 i 24c04 .... przepraszam ale nie potrafię nic więcej pomóc :(

_________________
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: 9 sie 2012, o 22:20 
Offline
Moderator
Avatar użytkownika

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

Antystatyczny napisał(a):
To jest tak obrzydliwie prosta funkcja, że nie może nie działac :D


Też tak myślę, a co do kodu to przykro mi ;) ja w ciemno nie pomogę bo nie wiem ... ;) nie umiem ... Piszesz że kod z książki, ale że zmieniony coś tam .... eeeeh ile razy ja już takie coś słyszę - a potem jak zwykle to samo - że jednak gdzieś coś ktoś tam pomieszał ;) no nie ma że boli .... no ja u siebie kod z książki odpalam i działa - działa panie kolego aż miło - i żadne cyfry się źle nie pokazują ..... Nawet w tej chwili to zrobiłem i zegarek sobie chodzi i wyświetlił się ładnie napis EEPROM z pamięci EEPROM ;) ...


Antystatyczny napisał(a):
Aha, teraz procek pędzę na F_CPU = 8000000. Fusebity sprawdzone, kompilator też wie, że zmieniłem taktowanie. W sumie... gdyby coś było nie tak z taktowaniem nie ruszyłby mi wyświetlacz, bo inicjalizacja pójdzie w krzaki.


Jaaaa ;) no a nie korciło cię nigdy np żeby to sobie sprawdzić ??? za dużo na przypuszczeniach się opierasz .... żadnych krzaków by nie było i też by działał LCD - nie ma żadnych problemów gdy się ustawi np taktowanie 8MHz a niechcący poinformujesz kompilator że jest 1MHz - a co to ma niby wspólnego z obsługą LCD ??? ;) .... pomyśl chwilkę i postaraj się sam sobie na to odpowiedzieć

Antystatyczny napisał(a):
Problem błędnego wyświetlania cyfr w sekundach, minutach i godzinach rozpiszę sobie na binarne liczby i może to mi coś podpowie. Wszak pierwsze 3 bity konwersji działają, kłopot jest, gdy zaświeca się bit trzeci, czyli 8 dziesiętnie.


No no i na mój nos to będziesz sobie rozpisywał i też ci wszystko wyjdzie dobrze - ale może wtedy do ciebie dotrze że jednak możesz mieć panie kochany coś źle w tym swoim kodzie albo połączeniach .....

_________________
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: 9 sie 2012, o 22:26 
Offline
Moderator
Avatar użytkownika

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

przy okazji proszę fotka ode mnie teraz z zestawu ;)

Obrazek

a ja już patrzę na twój 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: 9 sie 2012, o 22:30 
Offline
Moderator
Avatar użytkownika

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

Dobra a teraz odłącz sobie Pan EEPROM i sprawdź czy działa ci sam RTC a potem na odwrót - odłącz RTC i sprawdź czy działa ci EEPROM i daj znać ;)

_________________
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: 9 sie 2012, o 22:33 
Offline
Moderator
Avatar użytkownika

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

Antystatyczny napisał(a):
Hahaha, a na Twojej fotce żadna cyfra w polu zegarka nie jest wyższa od 7! :D


Jaaaaa ;) no to proszę

Obrazek

fizycznie - fizycznie ;) i oczywiście zakomentuj linie dostępu do eeprom żeby program działał np TYLKO z RTC

_________________
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: 9 sie 2012, o 22:46 
Offline
Moderator
Avatar użytkownika

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

Ok bo widzę - że nie zwróciło to twojej uwagi - a błędów pewnie masz więcej - przede wszystkim zobacz jaki masz ADRES ustawiony w kodzie dla swojej pamięci 24c08 - może to cię naprowadzi na trop baboli ? ;) czytałeś PDF'a od swojej pamięci ? bo coś mi się wydaje że chyba nie ? czy się mylę ?

_________________
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: 9 sie 2012, o 22:49 
Offline
Moderator
Avatar użytkownika

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

a pokaż z ciekawości swoją funkcję lcd_int() ???

_________________
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: 9 sie 2012, o 22:56 
Offline
Moderator
Avatar użytkownika

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

Antystatyczny napisał(a):
LCD_int()
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 skopiowane z Twojej biblioteki za co przepraszam, ale na szybko musiałem się tym posłuzyć


Nie ma żadnego problemu no coś ty - to jest OK

Antystatyczny napisał(a):
Czytałem DS dla pamięci 24Cxx. Wydaje mi się, że to zrozumiałem. A0 mam do VCC, a A1 i A2 do masy. PCF mam A0 do masy.


ale tu to albo robisz jakieś kalambury ;) albo nie wiem co ? ..... a co to jest pamięć 24cXX bo ja takiej jeszcze w życiu nie widziałem ;)

Więc jeszcze raz na spokojnie powiem ci - zajrzyj do PDF'a swojej pamięci 24c08 (o ile w końcu taką fizycznie posiadasz ??? bo może jakąś inną a nie mówisz o tym jasno) ....

i wtedy zobaczysz jakie dziwne rzeczy napisałeś wyżej o tym A0 i A1 i A2 ;) .... eeeeeeś ;)

_________________
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: 9 sie 2012, o 23:05 
Offline
Moderator
Avatar użytkownika

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

No to fakt, pamięć eeprom zostaw sobie na później i albo dokładniej przeczytaj notę albo jak mówię zassaj pierwszą lepszą do jakiejkolwiek kostki 24c08 i poczytaj - przecież nie musi być atmela. Pamięc 24c08 zawsze będzie taka sama ;)

-------------

a co do tego twojego wyświetlania to powiedz mi jeszcze raz dokładnie ;) co się dzieje .... dochodzi do 7 i potem co się pokazuje zamiast 8 ?

_________________
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: 9 sie 2012, o 23:14 
Offline
Moderator
Avatar użytkownika

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

To zanim zaczniesz do końca rozgryzać tajemniczy algorytm weź pan sobie i wyświetlaj na innej pozycji LCD pojedyncze pola BCD np sekund

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


i bez żadnej konwersji będziesz widział co siedzi i jak się zmienia w każdej połówce odczytanego bajtu

przecież trzeba jakoś sobie umieć debugować kod ;) i dzielić go na mniejsze kawałki żeby sprawdzać

_________________
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: 9 sie 2012, o 23:18 
Offline
Moderator
Avatar użytkownika

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

a poza tym spróbuj tak:

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


bo może masz coś z wyświetlaniem stringów nawalone ? ;)

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

no ja też lecę spać - jutro mam kursanta ;) tzn prowadzę kurs C - więc mogę być przez prawie 3 dni nieobecny - chyba że wieczorem późnym będę miał jeszcze chwilę siły - to tu zajrzę

_________________
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: 10 sie 2012, o 19:10 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8631
Pomógł: 338

hmmm.... a może coś w niej siedzi i stad ten problem masz jak jest z wylutu ...
i możliwe ze masz konflikt na I2C



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

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

Pamięć jest sprawna panie kolego - tylko ty (jeszcze raz to powtarzam nie przeczytałeś dokładnie noty PDF) i stąd te problemy


Kupisz nową kostkę 24c08 i będziesz miał NADAL DOKŁADNIE ten sam problem

chyba że kupisz 24c04 to problem zniknie jak ręką odjął

ja wiem dlaczego on jest - ale najpierw spróbuj sam do tego dojść przez chwilę chociaż

bo np wczoraj wałkowaliśmy temat i prosiłem cię żebyś FIZYCZNIE odłączył pamięć EEPROM z układu, napisałeś że to zrobiłeś wczoraj\

a dzisiaj piszesz że znalazłeś rozwiązanie bo odłączyłeś SDA i SCL od swojego EEPROM'a

no to jak to w końcu jest ? ;)

nie wspomnę już że nie zassałeś sobie noty od 24c08 i nie poczytałeś czym ona się różni od 24c04 - i nadal ci się wydaje w związku z tym, że masz w kodzie wszystko OK .... a już chociażby sam adres na I2C dla swojej kostki EEPROM masz zbabolony niestety :(

------------------------ [ Dodano po: 1 minucie ]

SunRiver napisał(a):
i możliwe ze masz konflikt na I2C


Na pewno a nie tylko możliwe - ale to wynika właśnie z tego że nasz autor wątku nie zajrzał do PDF'a żeby zobaczyć że 24c08 będzie w konflikcie na I2C z PCF8583 :(

_________________
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: 10 sie 2012, o 21:05 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8631
Pomógł: 338

spokojnie przyjacielu ...
na początku to wygląda masakrycznie , sprawdź jaki adres masz na RTC , potem jaki masz na EPROMIE , ustaw inny nogami
popraw w kodzie adresy i będzie śmigać :) a jak co pytaj pomożemy:)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sie 2012, o 21:16 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8631
Pomógł: 338

czekaj sobie looknę do noty mam nadzieje że nie masz czasem st24C08 ??



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sie 2012, o 21:26 
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

Ogólnie adres jest taki 1 0 1 0 A2 A1 A0 R/W
ale pamięć 4k (AT24C04) nie używa wejścia A0, pamięć 8k (AT24C08) nie używa wejść A1 i A0 a pamięć 16k (AT24C16) nie używa wejść A2 A1 i A0. Te nie używane wejścia nie zmienią adresu układu są ignorowane. Te bity w adresie które nie można zmienić poprzez ustawienie wejść służą do wyboru strony i jeden układ ma kilka adresów które wybierasz w programie. Tak jakby zamiast układu 4k były dwa układy 2k. Tyle że przy większym układzie masz wszystko w jednej obudowie.

Reasumując w pamięci to wejście A2 podciągnij do VCC i w programie użyj odpowiedniego adresu (0xA8 lub 0xAA lub 0xAC lub 0xAE)

_________________
Dragonus Cracovus: Biomagia



Ostatnio edytowano 10 sie 2012, o 21:50 przez Krauser, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sie 2012, o 21:28 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8631
Pomógł: 338

no i mnie uprzedziłeś kolego Krauser :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sie 2012, o 21:33 
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

SunRiver napisał(a):
no i mnie uprzedziłeś kolego Krauser

Nie ma lekko. Musisz poćwiczyć pęcherz :lol:

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sie 2012, o 21:38 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8631
Pomógł: 338

no racja .... echhh....
:)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sie 2012, o 22:35 
Offline
Moderator
Avatar użytkownika

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

Antystatyczny napisał(a):
Nie, mam AT 24C08A

Przyszło mi coś na myśl. Skoro moja pamięć jest większa, to i wymaga innego sposobu adresowania jej komórek. Wystarczy 9 bitów? Może ja czegoś nie wiem/nie rozumiem...


O! widzisz i tu w końcu zastartowałeś ;) a dalej już kolega Krauser wyjaśnił ładnie ....

Ty czytasz notę PDF wspólną dla kilku rozmiarów tych pamięci a tymczasem NIE MA MOŻLIWOŚCI aby każda z nich miała trzy piny adresowe A0, A1 i A2 .... no właśnie z tego względu który zacytowałem z twojego myślenia (prawidłowego zresztą ;)

Dlatego tak usilnie starałem się ciebie nakłonić do pobrania noty PDF od samej 24c08 ..... ale jak zwykle (sam widzisz) czasem nie wiedzieć czemu unikach moich porad jak OGNIA ;) .... tymczasem proszę bardzo - odpalam google, wpisuję

24c08 i klikam w pierwszy link z PDF'em dla 24c08 dokładniej ST24c08, i tylko dla 24c08 !

i co widzę ? i co byś Ty zobaczył a czego UNIKAŁEŚ ? - o to jak niżej:

Obrazek

No i pokaż mi tu twoje piny A0, A1 czy A2 hmmm ?

tzn E może pełnić rolę A2, ale to A2 - zatem NIGDY nie możesz ustawić adresu dla swojej pamięci 24c08 takiego samego jak 24c04

dlatego zrozum - czasem jak czegoś nie wiem to się nie odzywam. Czasem też zdarzy mi się popełnić błąd gdy odpowiadam.... ale najczęściej staram się jakoś naprowadzić - a przyznasz że jak się zajrzy do tej noty to wręcz z ZEROWĄ znajomością angielskiego z samych obrazków można zobaczyć od razu że coś nie halo miałeś z tymi A0, i A1 - zgadza się ?

_________________
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: 11 sie 2012, o 08:01 
Offline
Moderator
Avatar użytkownika

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

Brawo ;) no i widzisz udało się - ja nadal będę twierdził że z notą od 24c08 szybciej byś na to wpadł - ale jak uważasz ;)

Antystatyczny napisał(a):
No i teraz widzę tego mojego mega babola! Powstaje tylko pytanie dlaczego cokolwiek umiałem zapisać do tej pamięci, skoro źle ją adresowałem?


A dlaczego niby ją źle adresowałeś ? - ja bym powiedział - JAKOŚ ją tam adresowałeś i trafiałeś w przypadkowe sekcje i bloki pamięci - dlatego coś się udało zapisać i odczytać ;)

_________________
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: 11 sie 2012, o 08:19 
Offline
Moderator
Avatar użytkownika

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

Dokładnie skoro A2 do VCC to nie może być inaczej

1010 [A2]000

więc jeśli A2=1 to masz:

1010 1000

A 8

;)

_________________
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: 11 sie 2012, o 09:28 
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

Antystatyczny napisał(a):
Teraz A0 i A1 są w powietrzu, a A2 do VCC. .... Przy takim podłączeniu jest adres 0xA8, dobrze rozumiem?

Dokładniej jest to adres 1 strony o rozmiarze 2kB, aby mieć dostęp do pozostałych 6kB czyli 3 stron musisz ustawić inne adresy.
1 0 1 0 A2=1 0 0 0 = 0xA8
1 0 1 0 A2=1 0 1 0 = 0xAA
1 0 1 0 A2=1 1 0 0 = 0xAC
1 0 1 0 A2=1 1 1 0 = 0xAE
i te adresy również są zajęte i nie możesz ich używać dla innych układów I2C

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 sie 2012, o 10:35 
Offline
Moderator
Avatar użytkownika

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

No o to dokładnie chodzi, dlatego w nocie której nie przeczytałeś i nie pobrałeś ;) do 24c08 masz wyraźnie i ładnie to napisane, że na szynie I2C mogą siedzieć w związku z takim adresowaniem tylko dwa takie układy 24c08 ;)

i będą adresowane dokładnie już jak w tej chwili prawidłowo się domyślasz.

_________________
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: 11 sie 2012, o 12:35 
Offline
Moderator
Avatar użytkownika

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

Antystatyczny napisał(a):
Przeglądam kod i nie bardzo rozumiem ten wiersz:
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 przekazanie jako argument funkcji wskaźnika do bufora bo?


No to dobrze rozumiesz ;)

tyle że zdaje się że bufor bo posiada elementy typu uint8_t natomiast argument funkcji lcd_str( char * s) to wskaźnik typu char

występuje więc niezgodność typu wskaźników zgadza się ???? w końcu nazwa bo to wskaźnik na pierwszy element tablicy, ale na element typu uint8_t

dlatego musimy jeszcze zrobić jawne rzutowanie do wskaźnikowego typu char*, co czynimy w tej linijce zgodnie ze sztuką jawnego rzutowania ;)

( (char*) bo )

a gdyby bufor bo był typu char, to nie trzeba byłoby tego rzutowania robić ;)

Tyle że bufor służy mi nie tylko do obróbki znaków ale także liczb to wolę mu nadać typ uint8_t bo lepiej mi się kojarzy ;)

_________________
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: 12 sie 2012, o 07:19 
Offline
Moderator
Avatar użytkownika

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

uint8_t zmienna;
(int)zmienna - to jawne rzutowanie TYPU zmiennej na int (czyli zamiana typu np uint8_t na int)

ale już

uint8_t bufor[];
(char*)bufo - to jawne rzutowanie TYPU WSKAŹNIKOWEGO a nie jak napisałeś "typu char i że dodatkowo to jest wskaźnik)

(char&) ????? nie nie ;) takich rzeczy to nie ma ;)

rzutowanie jest po to żeby poinformować kompilator że chcesz świadomie w inny sposób potraktować zmienną. Czyli jeśli ona ma jakiś typ to chcesz go zmienić na inny. Tak samo jeśli chodzi o typy wskaźnikowe. Bo przecież TYP wskaźnika nie mówi o tym jakiego typu jest SAM WSKAŹNIK (on zawsze jest 16-bitowy) ale mówi jakiego typu jest obiekt na który on wskazuje ;)

_________________
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: 12 sie 2012, o 08:22 
Offline
Moderator
Avatar użytkownika

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

W C++ jest to o wiele bardziej rozwinięte i są specjalne słowa kluczowe nawet do jawnego rzutowania - więc mocno się ono różni od tego rzutowania w C

Jak masz pytania o rzutowanie w C to pytaj śmiało ;)

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

Dołączył(a): 04 lut 2013
Posty: 257
Lokalizacja: Racibórz
Pomógł: 0

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


czyli wyświetlenia wyniku na LCD chcę wyświetlić wynik na terminalu PC poprzez uart??
Bo kombinuję tak (chodzi mi o wyświetlenie napisu z EEPROM na terminal)
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

i pokazują mi się same kropki (7sztuk) jako wynik,proszę o pomoc



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2013, o 14:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

Do terminala musisz wysłać ASCI a nie wartość bitową.



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

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

No a co ma się wyświetlać skoro ty wysyłasz jakiś tam bufor z liczbami mającymi mało wspólnego z kodami ASCII a już na pewno nie jest to string zakończony zerem.

Ja już pisałem ci na PW i podawałem sposoby jak się zamienia liczby na postać ASCII i stringó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  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 39 ]  Przejdź na stronę 1, 2  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

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