27-09-2018, 09:41
(27-09-2018, 08:42)case25 napisał(a): To mój pierwszy projekt na arduino, zwykle działałem na czystych atmegachI trzeba było przy czystych AVR zostać. Jak zmienia się platformę to na lepszą (ARM, ostatecznie Xmega) a nie na gorszą.
W programie nie widzę watchdoga. Obsłuż go. Dodaj sobie także sygnalizację, że pętla główna programu pracuje.
USB w Windows (nie pisałeś jaki masz system) jest jaki jest. Inne urządzenie podłączone do tego samego HUB-a potrafi wywalić wszystko co jest do niego podłączone. Tu najważniejszy jest soft na kompie. Używaj Javy więc praktycznie na nic nie masz wpływu.
Jeśli system ma działać pewnie na USB (śmieszne, USB i pewność działania) to :
1) Od strony klienta sprzętowe USB. Zaniknie SOF symulujesz odłączenie na chwilę wtyczki USB. Inne rozwiązanie, komp co jakiś czas wysyła jakieś dane. Jeśli ich brak, symulujesz odłączenie na chwilę wtyczki USB.
Jeśli nie jesteś w stanie obsłużyć sprzętowego USB, użyj dobrego mostka USB. Całkiem dobrze sprawują się układy FTDI, CH3xx (przynajmniej pod Win) niestety już nie. Na FTDI mam urządzenia pracujące 24/h nawet po kilka lat. Systemem jest Linux :-)
2) Od strony kompa, musisz wykrywać zniknięcie urządzenia i odpowiednio reagować. Jak to zrealizować nie napiszę, bo nie ja pisze na Win czy Linux wiem tylko czego wymagam - w czasie działania programu, wyjmę i włożę wtyczkę USB, program ma odzyskać komunikację. Czy Twój program odzyskuje komunikacje w takiej sytuacji?