Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 29 kwi 2026, o 13:50


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 19 ] 
Autor Wiadomość
PostNapisane: 19 cze 2015, o 13:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lut 2013
Posty: 126
Lokalizacja: Turbia
Pomógł: 0

Witajcie, dawno nie pisałem na forum bo mam straszne urwanie głowy ale ostatnio nie daje mi spać pewien pomysł. Otóż czy jest możliwość w jakiś sposób napisać program który w trakcie normalnej pracy mikrokontrolera mógłby sygnalizować np. procentowo na LCD jego obciążenie związane z ilością wykonywanych operacji i zużycie pamięci? Coś na wzór systemowego menedżera zadań w którym mamy okienko wydajność i w nim obciążenie CPU. Pytam czysto z ciekawości bo tak mi przeszło przez głowę i w sumie nie wiem czy jest to możliwe oczywiście tak aby dodatkowo nie zamulać tym procka.

Ma ktoś jakiś pomysł? Zapraszam do kreatywnej dyskusji :)
Pozdrawiam Dexter

_________________
Zestaw ATB 1.04
Niebieska książka
Zielona książka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2015, o 13:37 
Offline
Użytkownik

Dołączył(a): 15 lip 2014
Posty: 63
Lokalizacja: Polska
Pomógł: 12

Zainteresuj się projektem lcd2usb -> http://mdiy.pl/miniaturowy-sterownik-wyswietlacza-lcd2usb/
Może tego szukasz 8-)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2015, o 13:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lut 2013
Posty: 126
Lokalizacja: Turbia
Pomógł: 0

Nie chodzi mi o wyświetlanie obciążenia komputera tylko mikrokontrolera :)

_________________
Zestaw ATB 1.04
Niebieska książka
Zielona książka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2015, o 13:52 
Offline
Użytkownik

Dołączył(a): 15 lip 2014
Posty: 63
Lokalizacja: Polska
Pomógł: 12

Aha, to mnie teraz zagiąłeś... :oops:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2015, o 13:55 
Offline
Użytkownik

Dołączył(a): 25 lut 2015
Posty: 252
Lokalizacja: Lublin
Pomógł: 23

Nieszczęśliwie dobrałeś temat :)
Z drugiej strony w treści jest jasno napisane o co chodzi.

Odnośnie pytania, wg mnie nie do zrealizowania (albo z dużym narzutem na obciążenie uC).
To nie OS. Wszystko chodzi w pętli głównej, lub przerwaniach - brak "zewnętrznego spojrzenia".
Ale niech się wypowiedzą starzy wyjadacze :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2015, o 14:10 
Offline
Użytkownik

Dołączył(a): 08 mar 2014
Posty: 398
Lokalizacja: Głogów
Pomógł: 11

Choć nie jestem "starym wyjadaczem" :lol: a początkującym amatorem to z pomiarem czasu zajętości procka, czyli ile czasu jaka operacja zajmuje radze sobie bardzo prosto dzięki analizatorowi stanów logicznych. Taki można kupić już za 40 zł. a jest to nieoceniony przyrząd. Jak na dłoni widać ile jaki rozkaz zajmuje czasu procesora lekko modyfikując program np, aby przed rozpoczęciem części rozkazów wystawił stan niski na któryś z portów a po skończeniu wykonywania tych rozkazów ustawić z powrotem stan wysoki. W analizatorze zobaczymy jak długo utrzymywał się stan niski a więc jak długo trwały procedury. Oczywiście należy z pomiędzy tych rozkazów usunąć wszystkie "delay". Na pomiar zajętości stosu jest sposób programowy w Greenbooku gdzie na lcd widzimy poziom zajętości stosu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2015, o 14:24 
Offline
Użytkownik

Dołączył(a): 25 lut 2015
Posty: 252
Lokalizacja: Lublin
Pomógł: 23

No tak, ale tym sposobem używasz odmiany wspomnianego "zewnętrznego spojrzenia" :)
Poza tym wiesz tylko jak długo wykonuje się ta, czy inna funkcja/operacja.
Ale bez delay pętla główna chodzi na 100% obciążenia, w zależności od ilości instrukcji wykonując obieg wolniej lub szybciej.
Idealnie byłoby, gdyby wszystko działo się w przerwaniu/przerwaniach, wtedy można byłoby coś rzeźbić w pętli głównej,
przyjmując, że czas na pętlę główną jest równy czasowi bezczynności.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2015, o 14:35 
Offline
Użytkownik

Dołączył(a): 08 mar 2014
Posty: 398
Lokalizacja: Głogów
Pomógł: 11

Ale wyłączając opóźnienia i mieląc to non stop w pętli jestem w stanie stwierdzić z jaką częstotliwością dane rozkazy się wykonują, kiedy dłużej a kiedy krócej itp. Później dodając opóźnienie wiem już ile czasu te procedury zajmą i ile mam wolnego czasu na inne rzeczy. Nie mówię że to jest jakieś super czy optymalne niemniej przynajmniej mi takie podejście niesamowicie ułatwia prace.
Np pisząc bibliotekę do obsługi wyświetlaczy led nie zmieniając nic w kodzie mogę ocenić który sposób na wyświetlenie kropki zajmuje mniej czasu. Różnice miedzy różnymi algorytmami w tak samo działającym projekcie były nawet kilkukrotne. Ale tak jak mówiłem jestem początkujący i tylko podzieliłem się jak ja do tego podchodzę :) .



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2015, o 14:46 
Offline
Użytkownik

Dołączył(a): 25 lut 2015
Posty: 252
Lokalizacja: Lublin
Pomógł: 23

No tak, tym sposobem masz nadmiarowość obiegu pętli, czyli powiedzmy procent o jaki jeszcze można ją "zająć" innymi operacjami,
nie zakłócając prawidłowości działania tego co już robi.
Ale przyjęcie, że te nadmiarowe obiegi to proces idle, jest chyba trochę na wyrost.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2015, o 14:51 
Offline
Użytkownik

Dołączył(a): 08 mar 2014
Posty: 398
Lokalizacja: Głogów
Pomógł: 11

Ale miele to w pętli tylko do testów i pomiarów, później rozmieszczam w timerach sprzętowych itp. To prawda da się sprawdzić tylko część instrukcji, ale można raz sprawdzić ile zajmuje ta część a potem ile tamta i tamta a na koniec wszystkie zsumować. Prawdą jest też to że ten sposób daje tylko orientacyjne czasy kiedy program wykonuje się szybciej kiedy wolniej, oraz czy jest jeszcze trochę czasu procesora na nowe procedury czy już nie bardzo. Wszystko zależy od podejścia i każdy ma swoje sposoby. Jak na razie nie znam innego sposobu ale chętnie usłyszę jak robią to inni ;)
W przerwaniu też da się sprawdzić np jak długo wykonuje się dane przerwanie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2015, o 15:05 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27460
Lokalizacja: Szczecin
Pomógł: 1045

Arek1111111111 napisał(a):
Ale miele to w pętli tylko do testów i pomiarów, później rozmieszczam w timerach sprzętowych itp. To prawda da się sprawdzić tylko część instrukcji, ale można raz sprawdzić ile zajmuje ta część a potem ile tamta i tamta a na koniec wszystkie zsumować. Prawdą jest też to że ten sposób daje tylko orientacyjne czasy kiedy program wykonuje się szybciej kiedy wolniej, oraz czy jest jeszcze trochę czasu procesora na nowe procedury czy już nie bardzo. Wszystko zależy od podejścia i każdy ma swoje sposoby. Jak na razie nie znam innego sposobu ale chętnie usłyszę jak robią to inni ;)
W przerwaniu też da się sprawdzić np jak długo wykonuje się dane przerwanie.


To jest BARDZO dobry sposób, rzekłbym sprzętowy wręcz zewnętrzny debuger, metoda tak jak z jedną diodą LED - stara, sprawdzona, pewna i niezawodna do ogromnej ilości zastosowań ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2015, o 15:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lut 2013
Posty: 126
Lokalizacja: Turbia
Pomógł: 0

Arek1111111111 napisał(a):
Choć nie jestem "starym wyjadaczem" :lol: a początkującym amatorem to z pomiarem czasu zajętości procka, czyli ile czasu jaka operacja zajmuje radze sobie bardzo prosto dzięki analizatorowi stanów logicznych. Taki można kupić już za 40 zł. a jest to nieoceniony przyrząd. Jak na dłoni widać ile jaki rozkaz zajmuje czasu procesora lekko modyfikując program np, aby przed rozpoczęciem części rozkazów wystawił stan niski na któryś z portów a po skończeniu wykonywania tych rozkazów ustawić z powrotem stan wysoki. W analizatorze zobaczymy jak długo utrzymywał się stan niski a więc jak długo trwały procedury. Oczywiście należy z pomiędzy tych rozkazów usunąć wszystkie "delay". Na pomiar zajętości stosu jest sposób programowy w Greenbooku gdzie na lcd widzimy poziom zajętości stosu.



Metoda jak najbardziej dobra ale wymaga zewnętrznego sprzętu i nie da się tego stwierdzić wewnątrz samego procka bez użycia komputera, a mnie własnie ciekawi sposób pomiaru z samego mikrokontrolera. Można by dać drugi malutki procek który robił by za taki analizator ale to w ostateczności.

_________________
Zestaw ATB 1.04
Niebieska książka
Zielona książka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2015, o 16:24 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27460
Lokalizacja: Szczecin
Pomógł: 1045

dexter napisał(a):
Można by dać drugi malutki procek który robił by za taki analizator ale to w ostateczności.

przerost formy nad treścią - taniej kupić byle najtańszy analizator

a robienie miernika obciążenia 8-bitowca - to hmmmm jakby to delikatnie powiedzieć ... ale też mi się wydaje być przerostem formy nad treścią

Proponuję powiedzieć do czego ci to, co chcesz uzyskać to może prędzej ktoś podpowie ci jak można rozwiązać taki problem

no chyba że to tylko tak dla idei ;) dla nauczenia się czegoś ;) ... to ok - rozumiem wtedy próbuj pisać

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2015, o 20:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lut 2013
Posty: 126
Lokalizacja: Turbia
Pomógł: 0

mirekk36 napisał(a):
dexter napisał(a):
Można by dać drugi malutki procek który robił by za taki analizator ale to w ostateczności.

przerost formy nad treścią - taniej kupić byle najtańszy analizator

a robienie miernika obciążenia 8-bitowca - to hmmmm jakby to delikatnie powiedzieć ... ale też mi się wydaje być przerostem formy nad treścią

Proponuję powiedzieć do czego ci to, co chcesz uzyskać to może prędzej ktoś podpowie ci jak można rozwiązać taki problem

no chyba że to tylko tak dla idei ;) dla nauczenia się czegoś ;) ... to ok - rozumiem wtedy próbuj pisać


Analizatora raczej nie kupię poniżej 5zł a małego Attiny jak najbardziej więc nie wiem skąd takie porównanie :)
Rozumiem że to przerost jednak temat pisany z ciekawości i narazie nie planuję nic takiego, czysta ciekawość.
Nie napisałem też że to dla 8 bitowca choć nie ukrywam że też mnie to interesuje, pracuję także na mikrokontrolerach PIC32 i tam jak najbardziej taki wskaźnik by mi się przydał.

Kolego Mokrowski dzięki za wyjaśnienie, teraz mniej więcej kapuję jak by to wyglądało.
Z tego co pamiętam to w Blue booku jest jakiś kod wielozadaniowy przypominający prosty system podzielony na wątki więc pewnie było by to nawet łatwiejsze do zrealizowania, coś na wzór PC'ta.

Może kiedyś jak będzie trochę czasu pokombinuję nad takim pomiarem, dzięki za informacje :)

_________________
Zestaw ATB 1.04
Niebieska książka
Zielona książka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sty 2016, o 01:22 
Offline
Nowy

Dołączył(a): 02 lut 2015
Posty: 3
Pomógł: 0

Witam
Wiem że odgrzewam stare, ale po co nowy temat. Mój nauczyciel powiedział że robi to w ten sposób że mamy zmienną volatile którą inkrementujemy w pętli głównej while. Najpierw wszystko wyłączamy co tam jest i patrzymy sobie ile naliczył w sekundę i to jest naszym odniesieniem, potem odpalamy wszystko i mamy wynik, tzn. trzeba jeszcze podzielić przez odniesienie i razy 100 i mamy wynik w procentach. Fajnie się to mówiło. Przeszedłem dziś do realizacji i nie wiem co się dzieje.

Najpierw mierzę sobie odniesienie, no to mam tylko włączone przerwania od Timera żeby odmierzać sobie sekundę, no i wynik jest podobny do częstotliwości taktowania. Do tej pory było fajnie, teraz odpaliłem wszystko (3 USARTY 1 UART, I2C,) i okazało się że nagle wartość obliczana wynosi 300 % ... Nie wiem czemu nie wiem skąd, procek też potrafi się zamielić tylko w wyświetlaniu wartości obciążenia, gdzie tam normalnie jeszcze inne dane po tym samym Uarcie powinien puszczać. Posiedzę jeszcze z tym dziś i dam znać jaki rezultat.

Jestem ciekaw co sądzicie o tej metodzie.
Pozdrawiam serdecznie!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sty 2016, o 06:26 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27460
Lokalizacja: Szczecin
Pomógł: 1045

mk94 napisał(a):
Wiem że odgrzewam stare, ale po co nowy temat

No no i po co wtedy w ogóle forum ? jego działy? wątki i tak dalej ? .... piszmy wszyscy ciurkiem w jednym wątku na całym forum - a wtedy na pewno będzie "łatwiej" się połapać o co chodzi, łatwiej znaleźć różnie odpowiedzi na ciekawe pytania itp itd. Będzie JEDEN wątek na forum liczący miliard postów - wtedy będzie łatwiej prawda ? ;)

eeeeh ludzie ludzie - no takim podejście zaprzeczacie w ogóle idei forum ... z jednej strony dokopując się do archeologicznych tematów i jeszcze w nich pisząc dalej na jakiś swój temat - a później zdziwienie, że ktoś nie odpowiada na forum itp ....

ale ok mogę to zrozumieć - nowe osoby, które nie miały wcześniej kontaktu z forami tak miewają - cóż tu dużo mówić - sam tak miałem kiedyś - więc na spokojnie staram się wyjaśnić o co chodzi - pomimo, że to robię po raz .... nie pamiętam już który ... ale też liczę na to, że i takie moje posty czasem ktoś nowy znajdzie - przeczyta i zrozumie ....

Więc proszę na przyszłość zakładać nowy wątek - bo mam nadzieję, że dobrze uzasadniłem - że jednak warto zakładać nowy temat ok?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sty 2016, o 11:36 
Offline
Nowy

Dołączył(a): 02 lut 2015
Posty: 3
Pomógł: 0

Ok Panie Mirku, nie ma problemu, posiedzę nad tym jeszcze i potem postaram się opisać to co zrobiłem, bo to ma szanse działać.
Pozdrawiam Serdecznie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sty 2016, o 11:55 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27460
Lokalizacja: Szczecin
Pomógł: 1045

mk94 napisał(a):
bo to ma szanse działać.

Też tak uważam i dlatego tym bardziej warte jest to nowego wątku

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sty 2016, o 13:27 
Offline
Użytkownik

Dołączył(a): 24 kwi 2013
Posty: 454
Pomógł: 30

Kiedyś jeden z forumowiczów utworzył temat, w którym dość ciekawie opisywał jak żongluje wątkami, ustawia im priorytety i sprawdza wydajność. Jednak teraz coś nie mogę tego znaleźć, może ktoś ma linka i zamieści.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 19 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 6 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO