wyklad 6.pdf

(114 KB) Pobierz
54842450 UNPDF
Hit roku 2000
BASCOM College
Wykład 6
Magistrala I 2 C
Serdecznie witam Studentów i Sympatyków
BASCOM College na kolejnym wykładzie.
Będzie to lekcja w pewnym stopniu wyjąt−
kowa, ponieważ omawiany na niej będzie
szczególnie ważny i dość trudny temat. Po
raz pierwszy będziemy musieli zerwać
z przestrzeganą dotąd zasadą niewgłębiania
się w teorię i traktowania elementów syste−
mu mikroprocesorowego po trosze jako
“czarnych skrzynek”, które działają, ale nie−
ważne jak. Tematem wykładu będzie jeden
z najważniejszych składników wielu syste−
mów mikroprocesorowych, w szczególności
pracujących w urządzeniach elektronicz−
nych powszechnego użytku. Składnik ten
jest dla systemu mikroprocesorowego tym
samym, czym dla żywego organizmu jest
układ nerwowy: pozwala on przenosić in−
formacje od i z układów peryferyjnych.
Oczywiście, domyśliliście się już, że mam
na myśli magistralę I 2 C.
Rozbudowywanie systemów mikroproce−
sorowych poprzez dołączanie do nich dodat−
kowych układów peryferyjnych zawsze było
sprawą kłopotliwą, a to głównie ze względu
na ograniczoną liczbę wyprowadzeń mikro−
procesorów. “Typowy” procesor posiada ich
co prawda najczęściej 32 (cztery ośmiobito−
we porty), ale ostatnio pojawia się coraz wię−
cej procesorów z ograniczoną liczbą wypro−
wadzeń, w dwudziesto− albo nawet ośmiopi−
nowych obudowach. Procesory te, po−
wszechnie dostępne i relatywnie tanie, zy−
skały sobie wielkie uznanie u amatorów
i profesjonalistów, ale ich stosowanie jeszcze
zwiększa problemy z ograniczoną liczbą wy−
prowadzeń.
Z drugiej strony, projektant systemu mi−
kroprocesorowego, w założeniu o dużym
stopniu uniwersalności, chciałby nieraz za−
pewnić sobie możliwości rozbudowy układu
w miarę pojawiających się nowych proble−
mów i wymagań użytkowników. Wielu kon−
struktorów marzyło o systemie procesoro−
wym składającym się z jednostki centralnej
i dołączanych do niej za pomocą uniwersal−
nego łącza układów peryferyjnych, których
ani liczba ani rodzaj nie musiałby być z góry
definiowany. W odpowiedzi na te słuszne żą−
dania firma Philips opracowała nowy stan−
dard w systemach mikroprocesorowych: ma−
gistralę I 2 C.
Zasady działania magistrali I 2 C nie są by−
najmniej proste, a szczegółowy jej opis wy−
kroczyłby z pewnością poza ramy tego wy−
kładu. Omówmy więc te sprawy dość ogólni−
kowo, zainteresowanych odsyłając do spe−
cjalistycznej literatury. Pamiętajmy, że o za−
chowanie zgodności naszego programu
z przyjętymi standardami dba “mądry” kom−
pilator, a transmisja danych w magistrali
I 2 C nie jest tutaj wyjątkiem.
Do czego właściwie ta magistrala będzie
potrzebna? Przecież sam procesor “może
wszystko”, a zdolny konstruktor powinien
tak zaprojektować układ, aby zawsze wystar−
czyło wyprowadzeń do obsługi potrzebnych
funkcji. W ostateczności, możemy przecież
zawsze zastosować “większy” procesor, nie−
wiele droższy od naszego ‘2051. Niestety,
nie zawsze będzie to możliwe. Bywa, i to
wcale nie w bardzo skomplikowanych ukła−
dach, że nawet 32 aktywne wyprowadzenia
dużej „pięćdziesiątki jedynki“‘ nie wystar−
czają. W systemach automatyki zachodzi nie−
raz potrzeba sterowania tak wieloma układa−
mi, że musimy sięgnąć po ekspandery,
zwiększające liczbę aktywnych wyprowa−
dzeń procesora. A te ekspandery, jak chociaż−
by znany Wam PCF8574, obsługiwane są
właśnie “ i kwadratem ”.
Jest jeszcze jeden powód, dla którego po−
winniśmy zgłębić tajniki magistrali I 2 C. Ist−
nieje ogromna ilość bardzo fajnych układów,
z których zbudować możemy wiele interesu−
jących i, co bardzo ważne, prostych urzą−
dzeń, które obsługiwane są wyłącznie przez
magistralę I 2 C. Mam tu na myśli przede
wszystkim układy przeznaczone do pracy
w sprzęcie RTV i audio. Zbudowanie np. de−
kodera Surround bez stosowania procesora
i transmisji I 2 C jest w obecnej chwili prak−
tycznie niemożliwe. Sercem większości
współczesnych systemów audio jest przecież
procesor, którego zadaniem jest sterowanie
niekiedy bardzo skomplikowanymi funkcja−
mi systemu. Tak, tak, do tego właśnie doszli−
śmy: dziesiątki oporniczków, kondensator−
ków i wzmacniaczy operacyjnych zostały już
dawno zastąpione procesorem i wyspecjali−
zowanymi układami scalonymi. Tylko że Wy
do tej pory nie mieliście okazji się z nimi za−
poznać. Po raz drugi uchylę rąbka tajemnicy
i powiem Wam, że w ostatnim stadium testo−
wania znajduje się, przeznaczony do publika−
cji w EdW, wzmacniacz Surround SRS zbu−
dowany na dwóch układach scalonych (nie
liczę tu końcówek mocy, bo to już inna ba−
jeczka): procesorze ‘2051 i wyspecjalizowa−
nym układzie TDA7431. No i co, przekona−
łem Was? To bierzemy się do nauki!
Zainstalowanie magistrali I 2 C w systemie
mikroprocesorowym, do którego program
będzie pisany w pakiecie BASCOM, jest
wyjątkowo proste. Możemy uczynić to na
dwa sposoby. Sposobem najprostszym jest
zadeklarowanie na początku programu, które
wyprowadzenie procesora ma obsługiwać li−
nię SDA, a które SCL. Wybór jest całkowi−
cie dowolny, a wiec najczęściej będziemy
kierować się chęcią maksymalnego upro−
szczenia projektowania płytki obwodu dru−
kowanego. Polecenia konfigurujące magi−
stralę I 2 C mają postać:
Config SDA= pin
Config SCL= pin
np.
Config Scl = P3.0
Config Sda = P3.1
Drugim sposobem zainstalowania magi−
strali I 2 C w systemie jest wybranie z menu
OPTIONS opcji COMPILER\I 2 C i wpisa−
nie definicji właściwych pinów procesora
w odpowiednich okienkach ( rysunek 1 ).
Uwaga: zdefiniowanie wyprowadzeń ma−
gistrali I 2 C w programie ma priorytet
przed określeniem ich w opcjach kompi−
latora. Jeżeli podane wyprowadzenia
różnią się pomiędzy sobą, to kompilator
zignoruje dane wpisane w okienku konfi−
guracyjnym .
20
Elektronika dla Wszystkich
54842450.025.png 54842450.026.png 54842450.027.png 54842450.028.png 54842450.001.png
BASCOM
Rys. 1
ta) i zegara szeregowego
SCL (ang. Serial Clock),
przenoszą informację po−
między urządzeniami do−
łączonymi do magistrali.
Każde urządzenie jest
rozpoznawane przez uni−
kalny adres, niezależnie
czy jest to mikrokontro−
ler, sterownik wyświetla−
cza LCD, pamięć lub in−
terfejs klawiatury − i mo−
że pracować jako nadaw−
ca lub odbiorca, zależnie
od realizowanej funkcji.
Oczywiście, np. sterow−
nik wyświetlacza LCD może najczęściej być
tylko odbiorcą, podczas gdy pamięć może być
nadawcą i odbiorcą. Dodatkowo, w czasie
przeprowadzania transmisji danych, urządze−
nie może być urządzeniem nadzorującym (ang.
Master) lub urządzeniem podporządkowanym
(ang. Slave) (patrz Tabela l). Urządzeniem
nadzorującym jest to urządzenie, które inicjuje
transfer danych i generuje sygnał zegarowy do
jego wykonania. W tym czasie dowolne urzą−
dzenie zaadresowane jest urządzeniem podpo−
rządkowanym.
Jeśli dwa lub więcej urządzeń nadzorują−
cych próbuje wystawić dane na szynę, pierw−
sze, które wystawia stan wysoki (podczas
gdy inne wystawia stan niski), traci dostęp do
magistrali. W czasie arbitrażu sygnały zega−
rowe są synchronizowane kombinacją zega−
rów generowanych przez urządzenia nadzor−
cze. Synchronizację uzyskuje się przez połą−
czenie "wired−AND" sygnałów zegarowych
poszczególnych urządzeń do linii SCL.
Za generację sygnałów zegarowych za−
wsze odpowiada urządzenie nadzorujące;
każde takie urządzenie w czasie transmisji
danych wytwarza swój własny sygnał zega−
rowy. Częstotliwość sygnału zegarowego nie
jest w żaden sposób ograniczona “od dołu”
(ma to szczególne znaczenie podczas prze−
prowadzania emulacji sprzętowej). Magistra−
lowe sygnały zegarowe wytwarzane przez
urządzenie nadzorcze mogą być zmieniane
tylko w przypadku kiedy są rozciągane przez
powolne urządzenia podporządkowane (ang.
Slow−Slave Device), utrzymujące stan niski
na linii zegara, lub przez inne urządzenie
nadzorcze w czasie arbitrażu.
Różnorodność technologii, w jakich mogą
zostać wykonane urządzenia I 2 C (CMOS,
NMOS, bipolarna) powoduje, że poziomy ze−
Ogólna charakterystyka
magistrali I 2 C
W aplikacjach 8−bitowych, np. takich, gdzie
stosowany jest mikrokontroler jednoukładowy,
można przyjąć pewne założenia projektowe:
− System składa się z co najmniej jednego
mikrokontrolera, pamięci i układów wej−
ścia/wyjścia.
− Koszt połączeń różnych elementów sy−
stemu musi być jak najmniejszy. System taki
spełnia najczęściej funkcje sterujące i nie jest
wymagana duża szybkość przesyłania danych.
− Efektywność całego systemu zależy od
wybranych układów i struktury magistrali łą−
czącej poszczególne jego elementy.
Aby spełnić powyższe założenia, wyma−
gana jest szeregowa struktura magistrali. Mi−
mo iż magistrale szeregowe nie mają zdolno−
ści przepływowych magistral równoległych,
wymagają mniej przewodów i wyprowadzeń.
Jednakże magistrala nie jest jedynie przewo−
dem połączeniowym, zawiera także wszyst−
kie formaty i procedury komunikacji we−
wnątrz systemu.
Urządzenia komunikujące się między sobą
po magistrali szeregowej muszą mieć pewne−
go rodzaju protokół chroniący przed wszelki−
mi możliwościami kolizji, utraty danych i za−
blokowaniem wymiany informacji. Urządze−
nia szybkie muszą umieć wymieniać dane
z urządzeniami wolnymi. System nie może
być zależny od urządzeń do niego dołączo−
nych − peryferyjnych, ponieważ w przeciw−
nym przypadku nie byłoby możliwe modyfi−
kowanie i ulepszanie takiego systemu. Proce−
dura komunikacji musi być w stanie zdecydo−
wać, które urządzenie będzie sterować magi−
stralą i kiedy. W przypadku dołączenia do szy−
ny urządzeń o rożnych szybkościach zegara,
musi być określone źródło sygnału zegarowe−
go magistrali. Wszystkie te kryteria zostały
uwzględnione w specyfikacji magistrali I 2 C.
Układy scalone dołączane do magistrali
I 2 C mogą być wykonane w dowolnej technolo−
gii (NMOS, CMOS, bipolarna). Dwa przewo−
dy, danych szeregowych SDA (ang. Serial Da−
Definicje terminologii magistrali I 2 C
Nadawca (ang. Transmitter)
Urządzenie, które wysyła dane na magistralę
Odbiorca (ang. Receiver)
Urządzenie, które odczytuje dane z magistrali
Urządzenie, które inicjuje przesyłanie danych,
generuje sygnał zegarowy i kończy transfer
Urządzenie nadzorujące (ang. Master)
Urządzenie zaadresowane przez urządzenie
nadzorujące
Urządzenie podporządkowane (ang. Slave)
W tym samym czasie więcej niż jedno
urządzenie nadzorujące może próbować
sterować magistralą bez zakłócania wiadomości
Wielodostęp (ang. Multi−Master)
Arbitraż (ang. Arbitration)
Procedura zapewniająca, że w przypadku jeśli
jednocześnie dwa (lub więcej) urządzenia
nadzorujące próbują sterować magistralą, tylko
jedno uzyska nad nią kontrolę, a transmitowana
wiadomość nie zostanie zakłócona
Synchronizacja (ang. Synchronization)
Procedura synchronizująca sygnały zegarowe
dwóch lub więcej urządzeń
Tabela 1
ra logicznego (stan niski) i logicznej jedynki
(stan wysoki) nie zostały ustalone i są związa−
ne z poziomem napięcia zasilającego. Jest to
fakt bardzo wygodny dla projektanta systemu,
ponieważ pozostawia szerokie pole do wybo−
ru typu układów pracujących na magistrali
I 2 C i poziomu zasilającego je napięcia.
Dane na linii SDA muszą być stabilne
w czasie trwania stanu wysokiego na linii
SCL. Stan wysoki lub niski na linii danych
może się zmieniać tylko w czasie, gdy na li−
nii zegara występuje niski stan logiczny.
Rozpoczęcie
i zakończenie transmisji
W czasie działania magistrali I 2 C pojawiają
się wyróżnione sekwencje stanów logicznych
na liniach SDA i SCL, które definiują rozpo−
częcie i zakończenie transmisji.
Do magistrali I 2 C może być dołączo−
nych wiele urządzeń posiadających możli−
wość sterowania tą szyną (ang. Multi−Ma−
ster Bus). Zazwyczaj urządzeniami nadzo−
rującymi są mikrokontrolery, ale możliwe
jest także zastosowanie w tej roli kompute−
ra PC.
Możliwość dołączenia więcej niż jednego
mikrokontrolera do magistrali I 2 C oznacza,
że więcej niż jeden nadzorca może próbować
w tym samym czasie rozpocząć transmisję
danych. By uniknąć chaosu jaki może po−
wstać w takich przypadkach opracowano
procedurę arbitrażu. Procedura ta wykorzy−
stuje połączenie typu "wired−AND" (tzw. ilo−
czyn montażowy) wszystkich interfejsów li−
nii magistrali I 2 C.
Elektronika dla Wszystkich
21
54842450.002.png 54842450.003.png 54842450.004.png 54842450.005.png 54842450.006.png 54842450.007.png 54842450.008.png 54842450.009.png 54842450.010.png 54842450.011.png 54842450.012.png 54842450.013.png
BASCOM
Przejście z wysokiego do niskiego stanu lo−
gicznego linii SDA, w czasie gdy SCL jest
w stanie wysokim oznacza rozpoczęcie trans−
misji. W języku MCS BASIC inicjalizacja ma−
gistrali I 2 C odbywa się po wydaniu polecenia:
I2CSTART
Przejście z niskiego do wysokiego stanu
logicznego linii SDA, w czasie gdy SCL jest
w stanie wysokim, oznacza koniec transmi−
sji. W języku używanym w naszym
BASCOM−ie zakończenie transmisji nastę−
puje po wydaniu polecenia:
I2CSTOP
Sekwencje rozpoczęcia (START) i zakoń−
czenia (STOP) transmisji generowane są za−
wsze przez urządzenie nadzorujące. Magi−
strala jest postrzegana jako zajęta po wystą−
pieniu sekwencji START. Po pewnym czasie
od wystąpienia sekwencji STOP, szyna jest
ponownie wolna.
Wykrywanie sekwencji START i STOP
przez urządzenia dołączone do magistrali
I 2 C jest łatwe, o ile zawierają one konieczne
rozwiązania sprzętowe. Jednakże mikrokon−
trolery nie posiadające takich interfejsów
muszą próbkować linię SDA przynajmniej
dwa razy w czasie każdego cyklu zegara
w celu wykrycia zmiany stanu. Niestety,
używane przez nas procesory ‘2051 wyko−
rzystywać muszą tę drugą metodę. Na
szczęście, w konstrukcjach amatorskich sto−
sowanie procesora jako urządzenia podpo−
rządkowanego magistrali I 2 C zdarza się wy−
jątkowo rzadko.
Każdy bajt wysłany na linię SDA magi−
strali musi zawierać 8 bitów, nawet gdyby to
miały być bity nieznaczące. Liczba bajtów,
które mogą być przesyłane w czasie jednego
transferu jest nieograniczona. Po każdym
bajcie musi wystąpić bit potwierdzenia (ang.
Acknowledge ACK). Jako pierwszy przesy−
łany jest bit najbardziej znaczący (ang. Most
Significant Bit − MSB). Jeśli odbiorca nie
może odebrać kolejnego pełnego bajtu da−
nych do czasu wykonania innej funkcji, np.
obsługi wewnętrznego przerwania, może
utrzymać stan niski na linii zegara SCL zmu−
szając w ten sposób nadawcę do przejścia
w tryb oczekiwania. Przesyłanie danych jest
kontynuowane kiedy odbiorca jest gotowy do
odebrania następnego bajtu i zwolni linię ze−
gara SCL. Dodatkowy impuls zegara związa−
ny z przesyłaniem potwierdzenia (cykl po−
twierdzenia) generowany jest przez nadzor−
cę. W czasie trwania tego impulsu, nadawca
zwalnia linię SDA (stan wysoki). W czasie
trwania cyklu potwierdzenia odbiorca musi
wystawić na linii SDA niski stan logiczny,
tak by pozostawał on stabilny podczas trwa−
nia stanu wysokiego na linii zegara SCL.
Każde urządzenie pracujące na magistrali
I 2 C musi posiadać swój własny, niepowta−
rzalny identyfikujący je adres. Zainstalowa−
nie na magistrali I 2 C dwóch układów
o identycznym adresie jest absolutnie nie−
dopuszczalne i, jak wykazuje praktyka
jest najczęstszą przyczyną kłopotów pod−
czas uruchamiania systemów mikroproce−
sorowych.
Maksymalna liczba układów, jakie mogą
zostać jednocześnie zainstalowane na stan−
dardowej magistrali I 2 C wynosi teoretycznie
255. Celowo napisałem “teoretycznie”, po−
nieważ trudno przypuścić, aby komuś był po−
trzebny aż tak rozbudowany system mikro−
procesorowy. Ponadto teoretyczna liczba
układów ograniczana jest przez najrozmait−
sze czynniki, między innymi przez dwoistość
adresów niektórych urządzeń.
Większość układów I 2 C posiadających
możliwość zarówno przyjmowania, jak
i wysyłania danych posiada nawet dwa adre−
sy: jeden do zapisywania w nich informacji,
a drugi do ich odczytywania. Przykładowo,
dobrze nam już znana kostka PCF8574A po−
siada adres bazowy do zapisu 162, a do od−
czytu 163.
Wiele układów dołączanych do magi−
strali I 2 C posiada także możliwość sprzęto−
wej zmiany adresu, najczęściej za pomocą
zwierania lub rozwierania z masą odpowie−
dnich wyprowadzeń adresowych. Dla przy−
kładu, wielokrotnie już wspominany eks−
pander PCF8574A posiada trzy sprzętowe
wejścia adresowe, co umożliwia symulta−
niczną pracę ośmiu takich układów na jed−
nej magistrali I 2 C.
W tabeli 2, na przykładzie układu
PCF8574A, została pokazana składnia słowa
adresowego, stosowanego do wywoływania
urządzeń pracujących na I 2 C, a w tabeli 3 ad−
resowanie jednego urządzenia, posiadające−
go możliwość sprzętowej zmiany adresu.
Tabela 2
nego. Dodanie dyrektywy ACK lub “9 ” sy−
gnalizuje, że mają być jeszcze wysłane na−
stępne bajty i że wymagane jest potwierdze−
nie odbioru bieżącego bajtu. Dyrektywa NA−
CK lub “8 ” zwalnia urządzenie podporząd−
kowane z konieczności potwierdzania ode−
brania transmisji.
Cały pakiet poleceń potrzebnych do wy−
słania bajtu na szynę danych magistrali
I2C powinien np. wyglądać następująco:
I 2 cstart
I 2 cwbyte [adres urządzenia podporządko−
wanego do zapisu], Ack
I 2 cwbyte [bajt do wysłania]
............ (wysyłanie kolejnych bajtów)
I 2 cwbyte [ostatni wysłany bajt], Nack
I 2 cstop
Poleceniem komplementarnym do I 2 wby−
te jest I 2 crbyte, służące do odczytywania da−
nych z układu podporządkowanego. Jego
składnia jest praktycznie identyczna ze skła−
dnią polecenia I 2 cwbyte:
I 2 CRBYTE wartość bajtu, [ACK (9), NA−
CK (8)]
a przykładowy program pozwalający na
odczytanie z układu podporządkowanego kil−
ku bajtów powinien wyglądać następująco:
I 2 cstart
I 2 crbyte [adres urządzenia podporządko−
wanego do odczytu], Ack
............. (wysyłanie kolejnych bajtów)
I 2 crbyte [ostatni odebrany bajt], Nack
I 2 cstop
Budowa słowa adresowego układu PCF8574A
Nieco większe
możliwości daje po−
lecenie:
MSB
LSB
0
1
1
1
X
X
X
X
Wartość stała, charakterystyczna
dla grupy układów, 0100 dla PCF8574
Pod−adres konfigurowany
sprzętowo
0 − zapis,
1− odczyt
Adresowanie układu PCF8574A
A2 A1 A0 Adres do zapisu Adres do odczytu
0
0
0
112
113
I2CSEND adres
urządzenia podporządkowanego, wartość
bajtu, ilość bajtów
za pomocą którego możemy wysłać na
magistralę I 2 C dowolną liczbę bajtów, np.
umieszczonych przedtem w tablicy.
Na przykład:
0
0
1
114
115
0
1
0
116
117
0
1
1
118
119
1
0
0
120
121
1
0
1
122
123
1
1
0
124
125
1
1
1
126
127
Tabela 3
W języku MCS BA−
SIC wysyłanie bajtu na
magistralę I 2 C realizo−
wane jest za pomocą
polecenia:
Dim bajt (10) As Byte 'deklaracja tablicy zawierającej 10 zmiennych
Slave = &H40
'podanie adresu urządzenia odporządkowanego
(konkretnie PCF8574)
For a = 1 to 10
'dziesięciokrotnie
bajt(a) = a
'nadaj zmiennej "bajt" przykładowe
wartości (od 1 do 10)
I 2 CWBYTE wartość
bajtu, [ACK (9), NA−
CK (8)]
Next
I2CSEND slave, bajt(), 10
' wyślij do odbiorcy 10 bajtów
End
które oczywiście musi być poprzedzone
inicjalizacją magistrali (I 2 CSTART) oraz po−
daniem adresu urządzenia podporządkowa−
Ciąg dalszy na stronie 26
22
Elektronika dla Wszystkich
54842450.014.png 54842450.015.png 54842450.016.png 54842450.017.png 54842450.018.png 54842450.019.png 54842450.020.png 54842450.021.png 54842450.022.png
BASCOM
Ciąg dalszy ze strony ????
Jednak składnia polecenia I2CRECEIVE
może być znacznie bardziej rozbudowana,
a to samo polecenie może służyć zarówno do
odbierania danych z magistrali I2C, jak i do
ich wysyłania:
I2CRECEIVE [adres, wartość ,ilość baj−
tów do wysłania, ilość bajtów do odebrania]
Na przykład:
Na tym możemy zakończyć teoretyczne
rozważania na temat magistrali I2C i spo−
sobu jej obsługiwania z poziomu języka
MCS BASIC. Zapraszam Was teraz do wy−
konania kilku ćwiczeń, które dadzą nam
rzecz najważniejszą: praktyczną wiedzę
o sposobach wykorzystywania magistrali
I2C.
Warto zauważyć, że polecenie I2CSEND
nie wymaga wstępnego inicjalizowania ma−
gistrali, które wykonywane jest samoczyn−
nie. Niestety, większa uniwersalność tego po−
lecenia okupiona jest pewnym zwiększeniem
długości kodu wynikowego.
Poleceniem komplementarnym do
I2CSEND jest I2CRECEIVE . Składnia tego
polecenia i jego możliwości są bardzo podob−
ne do I2CSEND. W najprostszej postaci uży−
wamy tego polecenia do odczytywania jednej
wartości z urządzenia podporządkowanego:
I2CRECEIVE [adres, wartość]
Dim Wartosc(10) As Byte
Wartosc(1) = 1
Wartosc(2) = 3
I2creceive adres urządzenia, Wartosc(), 2, 1
'wysłanie na magistralę
I2C dwóch bajtów i odebranie 'jednego bajtu
Print Wartosc(1)
Zbigniew Raabe ,
e−mail: zbigniew.raabe@edw.com.pl
Konsultacje: Sławomir Surowiński ,
e−mail: slawomir.surowinski@ep.com.pl
Elektronika dla Wszystkich
23
'wydruk odebranej wartości
54842450.023.png 54842450.024.png
Zgłoś jeśli naruszono regulamin