Scynk napisał(a):
Żadnych przypisań, warunków, czy innych. Tylko, że jak to skasuję i zmienię na void i2cPutbyte to oczywiście przestaje działać Więc standardowe pytanie: co tu jest nie tak? Przy okazji analogiczna funkcja TWI_write również zwraca void.
Wybacz, że tak troszkę żartobliwie odpowiem
![Puszcza oko ;)](https://forum.atnel.pl/images/smilies/icon_e_wink.gif)
ale to tak jakby młody lekarz na I-szym roku studiów uczył się na zasadzie obserwacji a nie anatomii człowieka, no i po chwili pobieżnej obserwacji stwierdziłby, gdy rozkroję pacjenta to w środku są dwie nerki, gdy wytnę jedną z nich, to pacjent jeszcze działa, a gdy wytnę dwie to przestaje działać. Dodam że raz rozkroiłem pacjenta który analogicznie miał tylko jedną nerkę i wciąż działał
![Puszcza oko ;)](https://forum.atnel.pl/images/smilies/icon_e_wink.gif)
dobra koniec żartów
![Puszcza oko ;)](https://forum.atnel.pl/images/smilies/icon_e_wink.gif)
... Panie kochany to, że jakaś funkcja zwraca jakiś wynik to nie oznacza, że ZAWSZE i w każdym wypadku w kodzie trzeba z niego korzystać. Słyszałeś gdzieś o takiej zasadzie hmmm WYMOGU ? bo ja nie ...
W przypadku putbyte czasem choć rzeczywiście rzadko do typowego wysyłania danych może się przydać informacja o tym czy układ do którego coś wysyłasz w ogóle zareagował (odpowiedział ) - żeby mieć pewność, że w ogóle wysłałeś dane. Toż na tej podstawie można w ogóle sprawdzić czy docelowy układ w ogóle odpowiada - nie przyszło ci to na myśl ?
To że przy sprzętowym TWI tego nie pokazałem nie oznacza, że nie można odczytać statusu - tyle że tam odczytu dokonuje się z jednego z rejestrów modułu TWI ... Statusów zwrotnych informacji przy sprzętowym TWI masz (można byłoby powiedzieć "bez liku") wystarczy zajrzeć do PDF'a i poczytać w tabelce w rozdziale o TWI ... Czy jest sens WSZYSTKO to opowiadać i opisywać w książce dla początkującego, który chce zrozumieć w jak najszybszy sposób jak coś wysłać przez TWI i nie przebijać się przez dziesiątki stron PDF'a albo książki ? No właśnie podstawowe informacje masz w Bluebooku - udało ci się odpalić - więc jeśli to masz za sobą - to zawsze mi się wydaje, że dalej już czytelnikowi będzie dużo łatwiej dochodzić tego co dalej robić, jak przechodzić w coraz bardziej zaawansowane metody obsługi I2C/TWI. Przecież w Bluebooku nie opisałem np jak odbierać czy wysyłać dane I2C/TWI za pomocą przerwań tak jak to miało miejsce w przypadku RS232(UART) - i czy to oznacza wg ciebie, że nie da się na przerwaniach tego zrobić ? W książce nie opisałem jeszcze wielu rzeczy o i2C/TWI jak np komunikacji z punktu widzenia układu SLAVE - i co ? myślisz że się nie da bo nie opisałem ?
![Puszcza oko ;)](https://forum.atnel.pl/images/smilies/icon_e_wink.gif)
I samym I2C/TWI jeśli chodzi o wszystkie możliwości a szczególnie przykłady np komunikacji MULTI MASTER - to można by spokojnie całą książkę napisać
![Puszcza oko ;)](https://forum.atnel.pl/images/smilies/icon_e_wink.gif)
Tylko, że jakbyś do niej zajrzał to by cię jako całkowicie początkującego pewnie odrzuciło - bo nie wiedziałbyś w co ręce włożyć, żeby kurczę na jej podstawie zrobić TAK PROSTĄ rzecz jak przesłanie czy odebranie kilku bajtów po I2C/TWI. Temat jest bardzo rozległy - mówię ci
![Puszcza oko ;)](https://forum.atnel.pl/images/smilies/icon_e_wink.gif)
a tak w rzeczywistości w 99% przypadków aplikacji z użyciem I2C/TWI i tak każdy korzysta właśnie z trybu master i w taki mega uproszczony sposób - żeby np "pogadać" sobie z układami peryferyjnymi jak RTC, EEPROM czy jakieś inne układy np zewnętrzne ADC itp
No i kolejna sprawa - bierzesz sobie programową implementację I2C i próbujesz "wyciąć z kodu tę nieszczęsną nerkę"
![Puszcza oko ;)](https://forum.atnel.pl/images/smilies/icon_e_wink.gif)
czyli zwracanie tego rezultatu z ACK - pisząc, że po wycięciu ci nie działa - i nie zadajesz sobie nawet minimum trudu aby analizując ten kod na podstawie opisu w książce chociażby - próbować dojść dlaczego tak się dzieje? Od samego wycięcia ? .... toż gdy ty piszesz że wycinasz samo zwracanie ACK - prawdopodobnie przy okazji nerki usuwasz jeszcze niechcący pacjentowi dodatkowo płuco i połowę jelit
![Puszcza oko ;)](https://forum.atnel.pl/images/smilies/icon_e_wink.gif)
i dziwisz się że umiera ?
![Puszcza oko ;)](https://forum.atnel.pl/images/smilies/icon_e_wink.gif)
... a przekładając to na język C - to pewnie usuwasz część istotnych opóźnień dla programowej obsługi I2C które są typ płucem i połową jelit
![Puszcza oko ;)](https://forum.atnel.pl/images/smilies/icon_e_wink.gif)
a może i coś więcej - ale to tylko można się domyślać na podstawie tak lakonicznego opisu operacji nad pacjentem
![Puszcza oko ;)](https://forum.atnel.pl/images/smilies/icon_e_wink.gif)
----------------------------------
odnośnie ATB 1.05a i kondensatora żelowego - to może nie wystarczy aż na kilka dni - bo kilka to dość szerokie pojęcie no ale tą dobę do powinien wytrzymać
![Puszcza oko ;)](https://forum.atnel.pl/images/smilies/icon_e_wink.gif)
co najmniej ... Na pewno nie godzinę albo dwie czy trzy.
Kwestia tylko czy testujesz to dobrym kodem czy tym z wycinankami ?
![Puszcza oko ;)](https://forum.atnel.pl/images/smilies/icon_e_wink.gif)
Spróbuj kodem z Bluebooka z lekcji o TWI gdzie jest odczyt zegarka i daj znać. Jeśli nadal będzie po godzinie się zerował to może coś być nie tak albo z kondkiem albo nie wiem - ale wtedy możesz oczywiście podesłać do nas zestaw do sprawdzenia i ew naprawy ... Tylko wtedy pisz już na maila do mnie.
------------------------ [ Dodano po: 1 minucie ]przy okazji polecam ci dwa webinary 4-ty i 6-ty
https://mirekk36.blogspot.com/2018/07/a ... .html#morez tej tematyki