(04-07-2019, 19:57)error105 napisał(a): Zakładam że soft jest OK (skoro gdzie indziej działa)
Niekoniecznie!
Jeśli soft nie jest odporny na błędy, co jest normą w bibliotekach i programach na Arduino, to np z powodu zakłóceń, przepięć itp, soft może się wieszać.
W komercji nie używam Arduino, a zabawkach bardzo, bardzo rzadko, ale podczas prób, stwierdziłem, że:
- 1-Wire przeważnie nieodporne jest na zwarcie magistrali i głupieje.
- 1-Wire nie interpretuje sygnału zgłoszenia przerwania przez slave.
- DS18B20 nie sprawdza CRC
- DS18B20 nie sprawdza PULSE.
- DS18B20 niepotrzebnie używa float.
- I2C nieodporne jest na status F8 i zawiesza program.
- I2C nie używa przerwań.
- INA219 niepotrzebnie używa float.
- TM1637 na długi czas blokuje CPU.
- LCD ze sterownikiem zgodnym z HD44780 nie używają sprzętowego busskeepera gdy CPU jest w niego wyposażony.
- LCD/TFT kolor nie używają sprzętowych możliwości LCD
- LCD/TFT kolor nie używają buforów, nawet na część ekranu, w konsekwencji stawianie piksela to 7 bajtów zamiast 2, bywa, że kasowanie ekranu to ponad 300ms zamiast 30 czy 1ms gdy LCD/TFT ma sprzętowe kasowanie.
O pozostałych bibliotekach nie będę pisał, bo temat woda. Napisane są BARDZO ŹLE. Wiem o tym, bo sporo bibliotek portowałem z Arduino na ARM, wcześniej AVR. ANI JEDNA nie nadawała się do sensownego użytku!
One nadają się tylko do zademonstrowania działania układu peryferyjnego, przetestowania go ale nie do normalnego użytkowania, zwłaszcza 24/h.
Niestety, arduinowcy nie mogą tego pojąc i używają ich. Ile osób, które wykorzystało Arduino, modyfikowało biblioteki?