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



Teraz jest 2 gru 2024, o 22:06


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 
Autor Wiadomość
PostNapisane: 15 maja 2014, o 20:44 
Offline
Nowy

Dołączył(a): 26 lis 2013
Posty: 19
Pomógł: 0

Witam! Aktualnie jestem na etapie przerabiania magistrali I2C z BlueBooka. Nie posiadam PCF'a takiego jak w książce, jednak chciałem odczytać czas z DS1307. Z noty aplikacyjnej dowiedziałem się, że żeby uruchomić oscylator należy wpisać O do bitu nr 7 w rejestrze pod adresem 0x00 ( robię to w mainie, jeszcze przed while). Cały program ma za zadanie odczytywać tylko sekundy (jak na razie), jednak na wyświetlaczu ciągle pojawia się "165". Biblioteki obsługi I2C są skopiowane z płyty dołączonej do książki, więc tam raczej nie ma żadnych blędów. Czym może być spowodowane takie działanie?

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


Czy ktoś jest w stanie mi pomóc? Z góry bardzo dziękuję ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 maja 2014, o 21:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 mar 2013
Posty: 333
Pomógł: 10

Czesc, zobaczyłem notę tego układu, i coś mi sie przypomniało..
Jak pobierasz sekundy to w lini:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

spróbuj zamskować bit 7.
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: 15 maja 2014, o 21:09 
Offline
Nowy

Dołączył(a): 26 lis 2013
Posty: 19
Pomógł: 0

Po zamaskowaniu bitu nr 7 na wyświetlaczu cały czas wyswietlane jest "85". Nie mam już pojęcia o co z tym chodzi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 maja 2014, o 21:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 mar 2013
Posty: 333
Pomógł: 10

Wstaw poprawiony kod.To jest cały plik main.c?
Hmm, a to wogole nic sie nie przesuwa?
W nocie pisze zeby odblokować zegar trzeba zapisac 0 na własnie ten 7 bit pod adres 0x00.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 maja 2014, o 21:45 
Offline
Nowy

Dołączył(a): 26 lis 2013
Posty: 19
Pomógł: 0

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



Na wyświetlaczu nic się nie zmienia. W poniższej linii wpisywane jest 0 do calego bajtu, więc oscylator powinien ruszyć.
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: 15 maja 2014, o 21:50 
Offline
Użytkownik
Avatar użytkownika

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

No końcu ma być zero tzn w bicie 7. Więc przy pracy zegara, odczycie sekund nie ma czego maskować. Bo i tak jest tam zero. Z tej połówki bitu i tak uzyskasz poprawną wartość BCD.

Dalej coś jest nie tak ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 maja 2014, o 21:53 
Offline
Nowy

Dołączył(a): 26 lis 2013
Posty: 19
Pomógł: 0

Jeśli nie ma maskowania na wyświetlaczu cały czas jest "165" , a z maskowaniem "85", więc chyba jednak do bitu 7nie jest wpisywane 0. Dobrze myślę?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 maja 2014, o 21:56 
Offline
Użytkownik
Avatar użytkownika

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

Myślę, że problem może wynikać z tego coś jest źle zapisywane do DS'a....
Ustawiłeś prędkość magistrali I2C na 100 kHz ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 maja 2014, o 21:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 lis 2011
Posty: 156
Pomógł: 12

Witam jesli moge pomoc to ja robilem inicjalizcje w ten sposob

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: 15 maja 2014, o 22:00 
Offline
Użytkownik
Avatar użytkownika

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

gufim napisał(a):
Witam jesli moge pomoc to ja robilem inicjalizcje w ten sposob

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


No dokładnie. Ale to się musi zapisać do pamięci.
U mnie był problem z uruchomieniem Ds'a bo ustawiłem mu za dużą prędkość magistrali.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 maja 2014, o 22:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 mar 2013
Posty: 333
Pomógł: 10

Po kodzie widac ze nie ustawił chyba. Ustaw prędkość funkcją
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
przed petlą while.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 maja 2014, o 22:15 
Offline
Nowy

Dołączył(a): 26 lis 2013
Posty: 19
Pomógł: 0

Zarówno funkcja i2cSetBitrate() jak i TWI_write_byte() są zawarte w bibliotekach dla sprzętowego TWI. Ja używam wersji programowej dlatego nie mogę ich użyć.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 maja 2014, o 22:19 
Offline
Użytkownik
Avatar użytkownika

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

No i tu może jest właśnie jakiś problem. Spróbuj sprzętowo czy się uda. A później przejdź na rozwiązanie programowe.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 maja 2014, o 22:26 
Offline
Nowy

Dołączył(a): 26 lis 2013
Posty: 19
Pomógł: 0

Jak na razie nie mam takiej możlwiości, bo korzystam z ATmegi8 i ATtiny2313, które niestety nie mają sprzętowego interfejsu TWI ;/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 maja 2014, o 22:35 
Offline
Użytkownik
Avatar użytkownika

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

ATmega8 jak najbardziej posiadam sprzętowy moduł TWI



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 maja 2014, o 23:37 
Offline
Użytkownik

Dołączył(a): 16 mar 2013
Posty: 157
Pomógł: 6

Kolego, ja ze swojej strony polecam obejrzeć ten poradnik: http://mirekk36.blogspot.com/2013/11/rt ... ek-na.html. Jest tam ładnie pokazane co i jak robić. Razem z inicjalizacja i innymi potrzebnymi rzeczami.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 maja 2014, o 00:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 mar 2013
Posty: 333
Pomógł: 10

barti879 napisał(a):
Jak na razie nie mam takiej możlwiości, bo korzystam z ATmegi8 i ATtiny2313, które niestety nie mają sprzętowego interfejsu TWI ;/


mam atmege8, i udało mi sie postawić sprzetowe RTC



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 maja 2014, o 21:31 
Offline
Nowy

Dołączył(a): 26 lis 2013
Posty: 19
Pomógł: 0

Mogłbyś powiedzieć, jak Ci się to udało? Ja teraz walczę z wersją na sprzętowym TWI ale nadal nic nie wychodzi... Na wyświetlaczu cały czas "84"

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  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 

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