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



Teraz jest 1 cze 2026, o 14:24


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 31 gru 2015, o 12:14 
Offline
Użytkownik

Dołączył(a): 27 wrz 2015
Posty: 33
Pomógł: 0

Ten temat jest dla mnie piekielnie trudny do opanowania. Przepraszam że zawracam głowę użytkowników forum ale chciałbym to zrozumieć.

Tak wygląda generowanie bitu startu i stopu z noty PCF8583.
Obrazek

A w niebieskiej książce autor przedstawia taką funkcję
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Dołączany jest plik nagłówkowy do tych funkcji w którym znajdują definicje preprocesora i nie tylko. Ale myślę że kod który zamieściłem jest czytelny i można domyślić się co i jak.

Ja jednak na tym zdjęciu widzę:
1.Stan wysoki na SDA.
2.Stan wysoki na SCL.
3.Oczekiwanie.
4.Stan niski na SDA.

I jeżeli wygenerujemy takie impulsy to wtedy wygenerujemy bit startu. Czy możecie mi pomóc może ja coś pomijam może czegoś nie widzę ale dlaczego tak nie wygląda wygenerowanie bitu startu. Gdzieś popełniam błąd ale gdzie.

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 gru 2015, o 12:22 
Offline
Moderator
Avatar użytkownika

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

hostinger napisał(a):
Gdzieś popełniam błąd ale gdzie.

No jak to gdzie? w zasadzie to sam sobie wręcz odpowiadasz.... pokazując rysunek z noty

Ale coś czuję, że dla ciebie to co w ramach tych przerywanymi liniami zaznaczone START i STOP .... to właśnie ten start i stop ....

Nie rozumiesz tego że przerywanymi liniami zaznaczono charakterystyczny moment dla startu i stopu ... z którego widać, że

1. START to:

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


2. STOP to:

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



dlatego, że to te dwie linie biorą udział w sekwencji startu i stopu. Co więcej - stan wysoki jest DOMYŚLNIE gdy magistrala jest zwolniona a więc kompletnie bez celu jest pisanie, że np START (tak jak to rozpisałeś w swoich 4 punktach) zaczyna się od wystawienie stanu wysokiego. Dopiero zakończenie działania na I2C kończy się przywróceniem stanu wysokiego na liniach ale w sekwencji podanej dla procedury STOP


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: 31 gru 2015, o 16:42 
Offline
Użytkownik

Dołączył(a): 27 wrz 2015
Posty: 33
Pomógł: 0

Wielkie dzięki że poświęciłeś mi swój czas.
Ale nadal nie bardzo rozumiem.
Cytuj:
Ale coś czuję, że dla ciebie to co w ramach tych przerywanymi liniami zaznaczone START i STOP .... to właśnie ten start i stop ....

A tak nie jest :?: :?:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 gru 2015, o 17:10 
Offline
Moderator
Avatar użytkownika

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

hostinger napisał(a):
A tak nie jest

Tak nie jest ;)

zrozum - linie przerywane mają za zadanie pokazać tobie/każdemu wyraźnie w czym tkwi różnica pomiędzy stopem i startem - właśnie w tym, że

START - zaczyna się od ściągnięcia SDA w dół gdy SCL jest w stanie wysokim

STOP - kończy się podciągnięciem SDA w górę gdy SCL jest w stanie wysokim

a to dlatego, że podczas normalnej transmisji nie zachodzi takie zjawisko, czyli na przykład

gdyby doszło do tego że na SDA wymuszony zostaje stan NISKI a w tym czasie SCL też jest w stanie niskim - to już nie będzie ANI START ANI STOP

podsumowując - aby zakończyć procedurę startu - (czyli ściągnięcie SDA w dół) dopiero teraz po odczekaniu odpowiedniego czasu może zacząć działać linia SCL - czyli ? No czyli musi zejść w dół ;)

Podobnie - żeby zachować procedurę STOP to co ? No to jak wynika z przerywanej linii NAJPIERW MUSISZ pan linię SCL ustawić w stan WYSOKI tak ? .... odczekujesz czas - i DOPIERO teraz możesz podciągnąć SDA w górę - dzięki czemu masz pełny STOP

może to lepiej ci to rozjaśni


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: 31 gru 2015, o 20:37 
Offline
Użytkownik

Dołączył(a): 27 wrz 2015
Posty: 33
Pomógł: 0

Cytuj:
stan wysoki jest DOMYŚLNIE gdy magistrala jest zwolniona a więc kompletnie bez celu jest pisanie, że np START (tak jak to rozpisałeś w swoich 4 punktach) zaczyna się od wystawienie stanu wysokiego.


No jeżeli linie SDA i SCL są wejściami to wtedy domyślnie jest stan wysoki bo rezystory wymuszają a normalnie kiedy SDA i SCL są wyjściami to wtedy zależy od PORTx. Co masz na myśli pisząc magistrala zwolniona.

------------------------ [ Dodano po: 9 minutach ]

A jeszcze znalazłem taki kod.
Obrazek
Dlaczego na początku nie stosujesz opóźnienia.

------------------------ [ Dodano po: 10 minutach ]

To delay(); to 4 nopy

------------------------ [ Dodano po: 12 minutach ]

Przepraszam że zadaje tak dużo pytań ale nie wiem.
Cytuj:
podsumowując - aby zakończyć procedurę startu - (czyli ściągnięcie SDA w dół) dopiero teraz po odczekaniu odpowiedniego czasu może zacząć działać linia SCL - czyli ? No czyli musi zejść w dół ;)

Po co ściągać SCL w dół.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sty 2016, o 00:29 
Offline
Moderator
Avatar użytkownika

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

Cytuj:
Po co ściągać SCL w dół.


a po co jest SCL ?

_________________
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: 1 sty 2016, o 01:56 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

hostinger napisał(a):
a po co jest SCL ?

...żeby go od czasu do czasu ściągnąć w dół - jak to z clock'iem :)

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sty 2016, o 16:55 
Offline
Użytkownik

Dołączył(a): 27 wrz 2015
Posty: 33
Pomógł: 0

SCL to sygnał zegarowy.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


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