• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
I2C "zacina" się
#11
(31-03-2020, 16:58)Jarewa0606 napisał(a): biblioteka jest w folderze "libraries" u mnie w AppData
Przeszukałem komputer eksploratorem plików i wyciąłem wszystkie wire.h a program  z #include <wire.h>  i tak się kompiluje.  Dziwne nie, jak tu poprawić bibliotekę jak nie wiadomo gdzie jest.
Jarewa0606 spróbuj przenieść np na pena tą bibliotekę i skompilować program z jej wykorzystaniem.
 
Odpowiedź
#12
Ja używam PlatformIO bo mnie to już dawno wkurzyło, tam mam choć pewny dostęp do biblioteki i jakie dam..
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#13
Wystarczy skopiować bibliotekę do projektu i zamienić nawiasy <> na "". Dzięki temu nie ma problemu z nowszymi "lepszymi" wersjami bibliotek.
 
Odpowiedź
#14
He he, nie tak łatwo zmienić, naprawić czego nie widzę. Czy wpiszę <> czy "" to i tak się kompiluje. a biblioteki nie widzę na komputerze. No ale pewnie jestem cienki bolek.
 
Odpowiedź
#15
Jak widzisz używanie arduinoide nie jest dobrym pomysłem, zaimportuj projekt do as.
 
Odpowiedź
#16
Jak będziesz miał w tym samym folderze bibliotekę to powinno się skompilować w pierwszej kolejności, ale obawiam się że to może nie dotyczyć tych wbudowanych, a tylko dodawane.
Niektóre urządzenia pracują stabilnie jedynie na 100kHz, niektóre biblioteki podbijają do 400kHz i pozostałe urządzenia potrafią się zawiesić, bo już taka prędkość jest potem dla wszysktich. Biblioteki używane w Arduino to standardowe biblioteki C używane kiedyś w AVR, niekiedy są użyte te wprost od Atmela czy Microchipa. Można sobie dodać WDT, sprawdzanie stanu podciągnięcia magistrali I2C przed inicjalizacją magistrali, można czujniki zasilić z pinu uC i tak je zresetować, można wszystkie na I2C podłączyć z wykorzystaniem tranzystora i tak im zrobić reset, można też znaleźć inne biblioteki, wystarczy podmienić pliki twi. Warto mieć w warsztacie arduinowca coś poza śrubokrętem, np. klon analizatora Saleae i popatrzeć jak faktycznie pracuje magistrala. Pewnie możliwości jest wiele i każdy z czasem będzie robił to coraz lepiej. Mnie na razie wystarcza jak jest.
Biblioteki są w dwóch miejscach, jedno to katalog instalacji Arduino w Program Files, a drugi to ...\appdata\Local\Arduino15\ i tu każdy core ma swoje biblioteki I2C. Można sobie podłączyć różne rdzenie i popatrzeć czy to po stronie bibliotek leży problem, np. ESP32, STM, AVR, AVR z MINI CORE, AVR z MIGHTYCORE, AVR z MEGACOREX gdzie są najnowsze AVR serii 0, np. Atmega3208 z trzema UART i 4kb RAM (tu już jest TWI sygnowane przez MICROCHIP).
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#17
        Tu znalazłem folder AppData od razu waliło błędem po usunięciu.
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#18
Rozpoczynając powyższy temat miałem nadzieję, że ktoś spotkał się z takim przypadkiem jak opisałem. Widzę jednak, że nie.
Tak jak pisałem problemem jest biblioteka wire. Przy wykorzystaniu programowej biblioteki do I2C nie udało mi się "zawiesić" "arduino".
Programuję na dwóch komputerach. Stacjonarnym trochę z przyzwyczajenia i laptopie, z którym podchodzę już do konkretnych urządzeń.
Na stacjonarnym wyszukując eksploratorem plików usunąłem (przeniosłem) wszystkie foldery zawierające pliki wire.h na pena a i tak programy wykorzystujące bibliotekę wire się kompilują. Dziwne no ale się poddałem w poszukiwaniach.
Z kolei na laptopie odnalazłem plik wire.h i po jego usunięciu programy już się nie kompilują. Wymieniłem bibliotekę wire na niby najnowszą, ale problem "zawieszania" pozostał.
Na razie pewnie pozostawię tą sprawę. Może w przyszłości ktoś rozwiąże ten problem, ale wątpię aby się komuś chciało bo najpierw musi o tym wiedzieć.
Dziękuję wszystkim za podpowiedzi i porady
Pozdrawiam
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości