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



Teraz jest 20 kwi 2024, o 05:14


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 
Autor Wiadomość
PostNapisane: 22 cze 2012, o 19:14 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 08 sty 2012
Posty: 13
Pomógł: 0

Witam,
Zostałem poproszony o wykonanie projektu wielozadaniowego, który miałby pracować w samochodzie.
Miałby on wykonywać podstawowe funkcje takie jak pomiar napięcia akumulatora w samochodzie, pomiar temperatury, a z czasem i inne bajery.
Sam pomiar napięcia akumulatora działa dobrze, lecz kiedy (korzystając z książki p. Mirka) napisałem obsługę termometru, który pokazywałby na pozycji wyświetlacza 2x16:
- 1,0 minimalną temperaturę
- 1,6 obecną temperaturę
- 1,12 temperaturę maksymalną
(Cały rząd 0 jest zarezerwowany dla pomiaru napięcia i wyświetla:
- 0,0 Napięcie akumulatora
- 0,5 Wyświetla płotki odwzorowujące stan naładowania akumulatora)
To niestety na wyświetlaczu nic się nie pokazuje jest tylko podświetlony,
o dziwo kod obsługi termometru wykorzystałem w projekcie robota i o dziwo mimo tego, że był ten sam to działał poprawnie.
Proszę o szybką pomoc, odpowiem z chęcią na wszystkie pytania, poniżej zamieszczam kod:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Znaczniki poprawiłem na Syntax C -- proszę nie używać CODE ---> SunRiver



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 cze 2012, o 19:59 
Offline
Użytkownik
Avatar użytkownika

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

Czy mógłbyś zrobić zdjęcie LCD i zaznaczyć na nim o co Ci chodzi ,
bo mi wygląda na to że coś sknociłeś w obsłudze wyświetlania wartości na LCD
i dlatego nie uzyskujesz w efekcie nic ...

Kod jest trochę przydługi by go analizować na szybko , a dodatkowe informacje jak najbardziej się przydadzą
i pomogą w ustaleniu problemu, bowiem opis jest nieco lakoniczny i zgaduje że masz na myśli poszczególne komórki
na LCD , ale nie widzę tego czy uwzględniłeś długości danych wyświetlanych od danej pozycji na LCD
co może powodować że dy chcesz już wyświetlać temperaturę , jeszcze masz zajętą przestrzeń przez coś innego
i efektem sprzecznych rozkazów jest brak wyświetlania.

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 cze 2012, o 12:07 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 08 sty 2012
Posty: 13
Pomógł: 0

Witam ponownie,
O dziwo po naciśnięciu resetu program odpala się i wskazania woltomierza są prawidłowe.
Natomiast z temperaturą coś ciągle nie działa.
Otóż kiedy nie podłączę czujnika do portu PC2, który ma odpowiadać za pobieranie danych z czujnika na polu minimalnej temperatury pokazuje się wartość 0.0 chociaż za minimalną ustawiłem 23.0. Maksymalna została niezmieniona.
Natomiast co ciekawe jako aktualną temperaturę pokazuje 0.0, co pokazuje zamieszczone w poniższym linku zdjęcie:
http://www.wrzucaj.com/400139
Po podłączeniu DS-a pokazuje temperaturę minimalną 0.0 a obecną "error" - czyli komunikat działający w sytuacji niemożności wykrycia czujnika, co pokazuje zdjęcie w drugim linku:
http://www.wrzucaj.com/251086
Proszę o szybką odpowiedź.
Pozdrawiam,
slashyk



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 cze 2012, o 12:53 
Offline
Użytkownik
Avatar użytkownika

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

hmmm ... więc tak

1. zdjęcia wklejaj za pomocą imageshack.us wtedy widać 800x600 najlepiej bezpośrednio w poscie
a nie przez jakieś dziwadła gdzie trzeba czekać ... ---> w ten sposób trochę jakby nie szanujesz naszego czasu

2. jak podłączyłeś DS-a ?? i którego DS1820 / DS18B20 czy DS18B20PAR
czy pamiętałeś o rezystorze między VCC, a sygnałem DSA ??

bo wydaje mi się że coś tu pomotałeś

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 cze 2012, o 12:59 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 08 sty 2012
Posty: 13
Pomógł: 0

Witam,
ad. 1
OK, będę pamiętał na przyszłość.
ad. 2
DS-a podłączyłem za pomocą magistrali 1-Wire. Jest to standardowy DS18B20, który znajduje się w zestawie rev:1.01 p. Mirka.
Nie rozumiem o co chodzi dokładnie z tym rezystorem, w kwestiach elektroniki jestem zielony, ale w tym miejscu chcę zaznaczyć, że ten sam czujnik w innych projektach działał dobrze, a był podłączony w ten sam sposób.
Serdecznie pozdrawiam,
slashyk



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 cze 2012, o 13:08 
Offline
Użytkownik
Avatar użytkownika

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

no i teraz gdy mamy jasność możemy się skupić nad problemami .... skoro miałeś dsa w zestawie , (nie używam ATB) więc nie muszę wiedzieć co tam jest :) ale rezystor jest na 100% i reszta prawidłowo.

No przecież nie przez i2c :) nie o magistrale mi chodziło :)

Jeśli działał prawidłowo to teraz będziemy analizować kod ....
musisz trochę poczekać ąż się przegryzę ---- ciebie nie boli brak komentarzy ??
ja muszę analizować linie po linii .... bo nie jestem wstanie odgadnąć co jest z czym powiązane ....

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 cze 2012, o 21:48 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

SunRiver napisał(a):
Jeśli działał prawidłowo to teraz będziemy analizować kod ....
musisz trochę poczekać aż się przegryzę ---- ciebie nie boli brak komentarzy ??
ja muszę analizować linie po linii .... bo nie jestem wstanie odgadnąć co jest z czym powiązane ....


No i widzisz... Sun zamiast pisać następne posty o CANie to linia po linii analizuje Twój kod bez komentarzy ;)

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 cze 2012, o 21:57 
Offline
Użytkownik
Avatar użytkownika

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

w sumie to tak zerknąłem , bo jeszcze sił tyle nie mam , ale CAN-a jutro puszczę obiecuje ...

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 cze 2012, o 22:15 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

SunRiver napisał(a):
w sumie to tak zerknąłem , bo jeszcze sił tyle nie mam , ale CAN-a jutro puszczę obiecuje ...

Najlepiej to Ty się dobrze wykuruj. Na tym najwięcej zyskamy "w długim okresie czasu" :lol:

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 cze 2012, o 00:42 

Pomógł: 0

Podziwiam was panowie ;), ja czasem czuje się wypalony tym całym programowaniem i elektroniką ;).



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 24 cze 2012, o 08:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 24 cze 2012
Posty: 414
Lokalizacja: Oborniki
Pomógł: 5

Witam. Nie sprawdzałem kodu kolegi z braku czasu, ale miałem identyczny problem właśnie wtedy, kiedy nie było rezystora podciągającego na magistrali 1-wire. Niech kolega dobrze to sprawdzi :)

_________________
Pozdrawiam:
Mikołaj



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 cze 2012, o 08:48 
Offline
Moderator
Avatar użytkownika

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

No ja takiego kodu niestety nie jestem w stanie w ogóle przejść i tak postawionego problemu. To już nie tylko chodzi o to, że brak komentarzy - ale o to, jak w ogóle jest skonstruowane pytanie :(

Mam kod:

- i tu 3 kilo kodu

i nie działa mi coś - dlaczego ?

Tak by można to było w uproszczeniu przedstawić - to pytanie. Proponuję zatem podzielić sobie te 3 kilo kodu na mniejsze kawałki i sprawdzać sukcesywnie.

_________________
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: 24 cze 2012, o 09:30 
Offline
Użytkownik
Avatar użytkownika

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

Ni cholery nie trybie o co się rozchodzi ,....
jak na razie to nie bardzo widzę gdzie i dlaczego chcesz inicjować 1Wire , coś tu pokopałeś

podziel program na funkcje , przeczyść main-a

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 cze 2012, o 10:59 
Offline
Moderator
Avatar użytkownika

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

SunRiver napisał(a):
podziel program na funkcje


O! to jest podstawowa i dobra porada na taki 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: 24 cze 2012, o 21:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 lut 2012
Posty: 598
Lokalizacja: Warszawa
Pomógł: 13

To może troszkę ja pomieszam ;).
Może warto zainteresować się timerami tak na marginesie, druga sprawa w main dajesz czas ds-wi czas na przemyślenie co od niego chcesz, natomiast w pętli while już mu tego czasu nie dajesz ......
najpierw sie go pytasz czy jest a zaraz później pytasz się go żeby podał ci wyniki, z chwile znowu się pytasz czy jest i znowu się pytasz o wynik i to minimum "kilka" razy na skundę, a on biedaczyna potrzebuje aż prawie sekunde żeby pomyśleć .........

I tak ode mnie jestem pełen podziwu dla ciebie za ten wskaźnik napięcia sporo się napracowałeś , a czy nie myślałeś o tym żeby zrobić to na podstawie współczynika skali w stosunku do napięcia, a później jakiej mądrej pętli która to wszytsko wystawi na wyświetlacz .............
i nie całą linie a tylko sam wskaźnik .......
;)

Aha a display_temp to gdzie ma się wyświetlać ? Bo jakoś wartości zmiennej x nie mogę nigdzie znaleźć ......



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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