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



Teraz jest 29 mar 2024, o 07:39


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 21 ] 
Autor Wiadomość
PostNapisane: 11 gru 2017, o 00:33 
Offline
Nowy

Dołączył(a): 04 sty 2017
Posty: 19
Pomógł: 0

Witam, zakladam oddzielny watek gdyz poprzedni w ktorym zadalem pytanie zostal zamkniety...
Problem wyglada nastepujac: nie potrafie sprawic aby moja atmega gadala z RTC DS1307
Wykorzystuje znana (chyba) biblioteke i2c_twi autorstwa M. Kardasia, ponadto w innym temacie znalazlem projekcik wrzucony przez wat1970, z ktorego wykorzystalem cześc kodu
Program wiesza sie po wywolaniu funkcji TWI_read_buf ("debuguje" to wstawieniem linijki, ktora zapala diode - dioda sie nie zapala, program zawiesza sie w poprzednim kroku), jesli linie kodu z ta funkcje wyrzuce, program idzie dalej
linie SDA i SCL podpiete rezystorami podciagajacymi 10k, atmega8 taktowana 8 MHz
jesli ktos bedzie w stanie podpowiedziec co jest napisane nie tak, bede wdzieczny
moj main wyglada tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


a tutaj rzut okiem na biblioteke twi_i2c:
[ bibliotek z książek nie udostępnia się na forach - mirekk36 ]

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 gru 2017, o 00:51 
Offline
Moderator
Avatar użytkownika

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

miksior napisał(a):
a tutaj rzut okiem na biblioteke twi_i2c:

I tak panie kolego wszędzie w necie wrzucasz biblioteki z książek Atnela ? Nie czytałeś stopki na pierwszej stronie redakcyjnej gdzie jest wyraźnie napisane, że rozpowszechnianie zawartości z książki (chodzi mi głównie o biblioteki) jest nielegalne bez zgody autora?

Powiedz jaki jest sens pisać książkę i przygotowywać kody bibliotek, jak później kilku czytelników opublikuje wszystko na forach bo "co tam" ...

Nie wystarczy napisać, że masz bibliotekę z książki pt: "xxxxxxx" ?

A tym bardziej tu na forum, gdzie każdy ma taką książkę a jak nie ma to zawsze może mieć ....

No chyba że spodziewasz się błędów w bibliotece, która już od 7 prawie lat działa u setek czytelników ....

Pomyśl proszę na drugi raz zanim gdzieś w necie udostępnisz biblioteki z książek ok? to moja gorąca prośba ... tymczasem bibliotekę usuwam z postu wyżej ....


Jeśli posiadasz Bluebooka to zawsze możesz tak jak mają to inni użytkownicy forum, w swoim profilu na forum zaznaczyć ikonkę Bluebooka żeby było od razu wiadomo, że jesteś jej posiadaczem i łatwiej będzie zawsze pomagać zamiast np odsyłać do książki...

------------------------ [ Dodano po: 17 minutach ]

Wracając do meritum czyli do twojego pytania - to po pierwsze przy starcie DS1307 trzeba po prostu wyzerować rejestr kontrolny i kwita - ty wprawdzie to robisz ale niestety stosując jakieś mechanizmy które nie wiesz jak działają i źle to robisz

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


co to jest? Zajrzyj na koniec książki do DODATKU gdzie masz w skrócie pokazane w jaki sposób się w C:

ustawia bity
zeruje bity
zmienia stan bitów na przeciwny

masz to ładnie opisane (poczytaj też o przesunięciach bitowych w tej książce)

I zamiast takiego czegoś wyślij po prostu ZERO

możesz to nawet zrobić za pomocą zwykłej zmiennej
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: 19 minutach ]

Poza tym pewnie jak to się mówi "zjadasz zęby" jak każdy kto zaczyna z tym RTC a nie zajrzy i nie poczyta dokumentacji PDF - tzn może inaczej być może nie "zjadasz zębów" może się mylę - ale zacznij od schematu jak takie pytanie zadajesz bo już w samym schemacie możesz mieć babola. Np masz podłączoną baterię do scalaka czy nie ? a jak nie - to co masz podłączone do pinu Vbat ?

------------------------ [ Dodano po: 23 minutach ]

Poza tym zobacz sobie te dwa poradniki:

https://www.youtube.com/watch?v=T1g4jwub7-Y
https://www.youtube.com/watch?v=_bco2tz02KU

w których pokazuję m.in tego RTC i dostęp do niego - JUŻ w pierwszym poradniku czas 25:30 ! zobaczysz jak się go odpala

_________________
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 gru 2017, o 10:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 gru 2013
Posty: 121
Pomógł: 16

Jak wykorzystasz przerwanie INT wyzwalane co 1 sekundę za pomocą pinu SQW (bit kontrolny SQWE ustawiony na 1 czyli bit 4 licząc od zera i RS0 i RS1 ustawione na 0 aby był 1Hz) to Twój problem z zawiechą na TWI_read_buf rozpłynie się w porannej mgle :) Łączenia drutów rozumiem, że zrobiłeś dokładnie tak jak w datasheet zegarka.
Swoją drogą wyrazy podziwu bo walczysz z tym zegarkiem chyba z pół roku i nadal się nie poddajesz :)
Pozdrawiam

_________________
http://strefapic.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 gru 2017, o 20:43 
Offline
Nowy

Dołączył(a): 04 sty 2017
Posty: 19
Pomógł: 0

Nie, nie rozpowszechniam biblioteki, zdarzylo mi sie to pierwszy raz, w celu weryfikacji poprawnosci (tyle juz czasu probuje odpalic ten zegar ze stwierdzilem ze moze cos pokrecilem w bibliotece...)
Dzieki za odpowiedzi.
Tak, posiadam niebieska i zolta ksiazke, juz to zaznaczylem
Mirrku, twoje 2 linijki kodu zwracaja blad przy kompilacji, ale to nieistotne
zeruje rejestr kontrolny, podpialem Vbat do masy, i co najciekawsze, zegar zlicza mi sekundy ale... jedna sekunda trwa w rzeczywistosci 6 sekund (mierzone kilkukrotnie stoperem) -choć nie do konca, za kazdym resetem mikroprocesora czy wgraniem programu jest to inny odstep czasowy
sprawdzam to w nastepujacy sposob:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


nadal cos robie zle...
a moze w funkcji z kodu bcd na decymalny mam blad? sam juz nie wiem...
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: 11 gru 2017, o 20:56 
Offline
Moderator
Avatar użytkownika

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

Cytuj:
Mirrku, twoje 2 linijki kodu zwracaja blad przy kompilacji, ale to nieistotne

to pokaż błędy

_________________
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 gru 2017, o 21:06 
Offline
Nowy

Dołączył(a): 04 sty 2017
Posty: 19
Pomógł: 0

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 gru 2017, o 21:35 
Offline
Moderator
Avatar użytkownika

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

No bo panie - panie jak ty sam nie widzisz po komunikacie, że zjadłeś nawiasy to czego oczekujesz ? Ja pokazałem tobie poprawną wersję a ty wpisałeś złą - ale jak mówię - nawet komunikat to pokazuje

_________________
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 gru 2017, o 21:47 
Offline
Nowy

Dołączył(a): 04 sty 2017
Posty: 19
Pomógł: 0

przekopiowałem żywcem twoj kod, nie zjadajac nawiasow, z reszta nie jest to chyba istotne, wyzerowalem rejestr w inny sposob, bardziej chcialbym sie dowiedziec dlaczego moj rtc nie dziala tak jakbym chcial



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 gru 2017, o 21:56 
Offline
Moderator
Avatar użytkownika

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

ok nawiasy są ok - ale gdzieś ty go wstawił w kodzie ? ;) .... eeeeh panie kolego - panie kolego ... zwracaj ty uwagę na takie szczegóły, bo jeszcze dużo czasu spędzisz jak będziesz takie babole robił

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

Poza FUNKCJĄ - nie może być kod źródłowy a ty dałeś to poza funkcją

_________________
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 gru 2017, o 22:00 
Offline
Nowy

Dołączył(a): 04 sty 2017
Posty: 19
Pomógł: 0

wstawilem to w funkcji main - tak aby wykonalo sie to raz, po starcie mikrokontrolera, tu zawsze wstawiam wszelkie inicjalizacje sprzetu - zle myslę?
przerzucenie deklaracji zmiennej status powyzej maina rowniez zwraca ten sam error



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 gru 2017, o 22:09 
Offline
Użytkownik

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

Najpierw przed main masz:
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 nie zeruje dwóch najstarszych bitów tylko wszystkie bity w zmiennej status

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

ale zmienna status się nie zmieniła więc znów masz ją całą wyzerowaną...
pomijając to że w main powinno być już bez
uint8_t

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 gru 2017, o 22:18 
Offline
Nowy

Dołączył(a): 04 sty 2017
Posty: 19
Pomógł: 0

tak, potem to poprawilem, "przed" mainem deklaruje zmienna, w mainie okreslam jej wartosc i jest okej, znaczy okej w sensie, ze kompilator nie wyrzuca bledow... dzialanie zegara juz nie jest okej



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 gru 2017, o 22:20 
Offline
Moderator
Avatar użytkownika

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

to pokaż DOKŁADNY schemat jak masz to zrobione i ew zdjęcia tego co zmajstrowałeś - bo może babola w sprzęcie zrobił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: 11 gru 2017, o 22:43 
Offline
Nowy

Dołączył(a): 04 sty 2017
Posty: 19
Pomógł: 0

Pomiędzy nozki X1 i X2 podpiety jest kwarc zegarkowy 32 kHz, VCC do zasilania, GND oraz VBAT do masy, SCL zegarka do SCL procka, podobnie SDA, obie linie podpiete do zasilana poprzez rezystory 10k wyjscie SQW zegarka wisi w powietrzu
załączam schemat (może mało starannie wykonany):
Obrazek

oraz zdjęcie tego co na płytce:
Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 gru 2017, o 22:58 
Offline
Moderator
Avatar użytkownika

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

Obejrzyj panie PODSTAWOWY poradnik o płytkach stykowych ;)

https://youtu.be/LiQcVSPkT6M?t=1459

_________________
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 gru 2017, o 23:07 
Offline
Nowy

Dołączył(a): 04 sty 2017
Posty: 19
Pomógł: 0

Twoj poradnik juz kiedys ogladalem, nie bardzo rozumiem po co ta porada, na plytce wszystko raczej jest podpiete tak jak trzeba, inne projekciki smigaja poprawnie (na zdjeciu nie widac calej plytki, z prawej strony połaczone sa obie szyny + oraz - plytki)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 gru 2017, o 09:04 
Offline
Użytkownik

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

miksior napisał(a):
Pomiędzy nozki X1 i X2 podpiety jest kwarc zegarkowy 32 kHz, VCC do zasilania, GND oraz VBAT do masy, SCL zegarka do SCL procka, podobnie SDA, obie linie podpiete do zasilana poprzez rezystory 10k wyjscie SQW zegarka wisi w powietrzu

Skoro SQW wisi sobie w powietrzu to po co właściwie zerujesz bity RS1 i RS0?
Czy czasami rezystory podciągające na I2C nie są za duże?

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 gru 2017, o 18:44 
Offline
Nowy

Dołączył(a): 04 sty 2017
Posty: 19
Pomógł: 0

wlasciwie nie wiem, w zasadzie control register odpowiada tylko za przebieg wyjsciowy z tej wlasnie nozki,

probowalem podciagnac poprzez 2x 2,2k (4,4k) i jest bez roznicy....



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 gru 2017, o 19:12 
Offline
Użytkownik

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

Może bez różnicy ale zazwyczaj stosuje się tam rezystory ok 4,4k
Skoro nie wiesz po co to tego nie rób. Na razie i tak nie ma to
znaczenia.
Za to zgodnie z notą powinieneś skasować bit CH w rejestrze 0.
Ten bit odpowiada za włączenie generatora i pracę zegarka.
Cytat z noty:
Cytuj:
On first application of power to the device the time and date registers are typically reset to 01/01/00 01 00:00:00
(MM/DD/YY DOW HH:MM:SS). The CH bit in the seconds register will be set to a 1.

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 gru 2017, o 19:24 
Offline
Nowy

Dołączył(a): 04 sty 2017
Posty: 19
Pomógł: 0

ehhh, wlasnie problem zostal rozwiazany, okazalo sie ze przyczyna bylo niewlasciwe polaczenie, a konkretnie, wcisniety kwarc, ktory ma male nozki nie stykal dokladnie i przez to uklad wariowal...

dzieki wszystkim za rady i udzielanie sie w temacie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 gru 2017, o 20:46 
Offline
Moderator
Avatar użytkownika

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

mirekk36 napisał(a):
Obejrzyj panie PODSTAWOWY poradnik o płytkach stykowych


miksior napisał(a):
Twoj poradnik juz kiedys ogladalem, nie bardzo rozumiem po co ta porada, na plytce wszystko raczej jest podpiete tak jak trzeba, inne projekciki smigaja poprawnie


i .... za chwilę ... p
miksior napisał(a):
ehhh, wlasnie problem zostal rozwiazany, okazalo sie ze przyczyna bylo niewlasciwe polaczenie, a konkretnie, wcisniety kwarc, ktory ma male nozki nie stykal dokladnie i przez to uklad wariowal...


szkoda gadać ;)

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

Strefa czasowa: UTC + 1


Kto przegląda forum

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