• 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
Dzien dobry
#1
Pozwolilem sobie zaistniec tu by poszukac odpowiedzi na problem , ktory co jakis czas obserwuje i chcialbym wreszcie zrozumiec rozwiazac.
Dlaczego arduino? bo ogarniam narzedzie, ktore jest skonfigurowane do pracy z malym prockiem.
Choc brakuje mi mozliwosci debugowania procesorka przy uruchamianiu.

Mam srednie doswiadczenie z procesorami - wczesniej pare zajec na studiach jakies OMG 30 lat temu, a teraz jak dorosle dzieci odlecialy z gniazda Smile  , hobbystycznie zacząłem sie tym zajmowac.
Klece - to dobre okreslenie - programy w arduino  do realizacji prostych funkcjonalnosci w domu. Nie mam wyksztalcenia informatycznego wiec wszystko trwa dlugo i wiedze zdobywam walka lub spacerowaniem przez pole minowe. Staram sie zrozumiec, co jest zrobione w bibliotekach, ktore trzeba dolaczyc aby uruchomic jakis czujnik czy wyswietlacz.

Dzida na ktora sie czasem nadziewam  jest nastepujaca
klon arduino nano lulb klon uno na procesorze ATmega328p 
Gdy program skompilowany ( bez warningow i bledow)  zajmuje wiecej niz 60% pamieci programu i ok 60 % pamieci dynamicznej  to procesor sie resetuje po ok 2sek albo "idzie w maliny" i to jeszcze w ramach setup{}.
Jesli zakomentuje dowolny fragment programu w petli loop {} ( wiele prob z roznymi czesciami programu ) tak ze w wyniku kompilacji zajetosc zasobow jest <60%  to dziala jak planowalem.
Jesli caly program podzielilem na bloki ( obsluga wyswietlacza, obsluga 1-wire, I2C) i skompilowalem osobno , to w swoim zakresie dzialaly bez problemow .
Prosze o informacje, co powinienem sprawdzic.
Pozdrawiam
 
Odpowiedź
#2
Stos.....
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#3
(01-02-2021, 17:53)Jarewa0606 napisał(a): Stos.....
Dziekuje za odpowiedz. 
Zapewne zwiazane jest to zachowanie ze stosem. Jednak nie wiem jak to a arduino zarzadzac. 
Nie napisalem programu "pod korek" , zostalo wolne ponad 700byte w RAM wiec spodziewam sie , ze jest miejsce na stos. OK przerwania jakies w tle o ktorych nie wiem pewno maja miejsce ( ot chocby timer do millis()).
Czy mozesz mi podac jakies narzedzie zeby to ogarnac, albo komende dla kompilatora, ktora by ostrzegala o tym ze moze byc problem ze stosem?
lub ustawiala odpowiednio SP?

Pozdrawiam
 
Odpowiedź
#4
Narzędzie i owszem jest ale trzeba z niego umieć korzystać "debugger" ........

Jedyna rada to unikać co pamięciożerne...

https://www.codeproject.com/Tips/753716/...-program-u
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości