(06-07-2019, 10:50)Robson Kerman napisał(a): Znowuż zmieniając preskaler zegara, trzeba pamiętać, że to Arduino i użytkownik nie ma wpływu na pracę innych peryferiów poustawianych przez producenta tegoż urządzenia.Nie "tegoż urządzenia" tylko "tegoż badziewia".
Jedynym pozytywem Arduino, jest to, że Mirek K. zyskuje coraz mniej klientów.
(06-07-2019, 10:50)Robson Kerman napisał(a): A te nie synchronizują się z zegarem, tylko patrzą na millis,które są co ok1ms zamiast dokładnie co 1ms. To jest dopiero chore. Domyślam się, że przerwania od przepełnienia a nie porównania, są dlatego, aby bez problemu uruchomić inne funkcje timera 0 np PWM. Czy jednak, nie lepiej było, użyć uC z większa ilością timerów a przy okazji większa ilością RAM?
(06-07-2019, 10:50)Robson Kerman napisał(a): nie wiem po co.Pewnie USART ale można w sofcie zmienić mu UBRR.
W każdym razie pewnie coś popsujemy i przestanie działać jakiś wyświetlacz, albo komunikacja
Problem millis można rozwiązać ustawiając przerwania od porównania T0 ustawione na 128. Wektor IRQ skierować na procedurę IRQ od OVR. GCC ma nawet taki bajer jak alias dla wektorów IRQ.
Mamy więc znów sytuację, da się ale trzeba się nakombinować aby zrealizować coś, co w normalnym przypadku zajmuje kilka linijek kodu.
Arduino nadaje się do pomigania ledem, sprawdzania czy LCD lub inny układ peryferyjny działa i to wszystko. Aby zbudować funkcjonalne urządzenie, trzeba zapomnieć o Arduino, jego beznadziejnym IDE bez debugera, beznadziejnych bibliotekach i najczęściej beznadziejnej konstrukcji..
(06-07-2019, 10:50)Robson Kerman napisał(a): Często się zastanawiam, dla czego Arduino ma tylu zwolenników, skoro pracując normalnie na rejestrach w normalnym IDE powyższe zadanie można zrobić szybciej, przyjemniej i bez stresu (z browarkiem w ręku)?Podobnie jest z HAL na STM32, jest proste. Arduino, może używać nawet debil, leń a tych nie brakuje. Niestety, aby zrobić coś poważniejszego, ani HAL a tym bardziej Arduino nie wystarczy, trzeba "jeździć" po rejestrach.