Wciąż nie rozumiem do końca... LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_alloc(length=%"U16_F")\n", length)); //LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_alloc(length=hu)\n"));//Moja modyfikacja - powyższa linijka powodowała hard fault Jak odkomentujesz tą drugą linijkę to się wykrzacza tak? Czy może wykrzacza się jak zakomentujesz pierwszą...
Witam! Eclipse Kepler Sourcery CodeBench Lite 2011.09-69 OpenOCD 0.6.1 STM32F103ZET6 Szablon projektu - Freddie Chopin Do tej pory wszystkie projekty na STM32 działały dobrze jednak teraz buduję większa aplikację i pojawiają się problemy. Objawia się to losową zmianą wartości zmiennych np. zadeklarowanych jako const czy przerwaniem __Default_Handler....
Problem z przepełnianiem stosów wynika z istnienia stosów zadań, które trzymają zmienne i stan zadań. Systemy zdarzeniowe wolne są od tej wady RTOSów. ;) Ogólnie RTOS jest pomysłem na to, jak zrobić kilka "pętli głównych", czyli jest to odpowiedź na problem programistów, którzy "zawiesili się" na koncepcji pętli zdarzeń. Tymczasem wystarczy "rozciąć"...
Nie ma takiej zależności. Rozmiar stosu jest zależny od ilości zmiennych automatycznych i "łańcucha wywołań". 4\/3!!
Warto też zminimalizować liczbę priorytetów przerwań, najlepiej jeśli się da do 2. Wówczas część stosu wymagana do ich obsługi się zmniejszy kosztem pewnego opóźnienia. ISR handlery zwykle nie potrzebują dużo lokalnej pamięci, lwią część stanowią przechowywane rejestry, w praktyce zakładam 128 bajtów/poziom. Co do badania zapotrzebowania na stos części...
całkowita zajętość pamięci RAM wynosi 0! A stos gdzie?
W pierwszej kolejności sprawdź, jaką masz zajętość pamięci na stosie oraz stercie po inicjacji konstruktora SerialBT. Podałeś tak mało informacji, że więcej nie da się "wywróżyć".
Postaram się dołączyć wtc do kodu. Myślałem jeszcze o pamięci. Może potestować za pomocą MemoryFree ? https://github.com/sudar/MemoryFree?file... Aby naprawdę dowiedzieć się ile max jest zajmowane pamięci, należy wypełnić ją jakąś wartością od wierzchołka sterty do końca stosu a później sprawdzać. Wynika to z tego, ze tak jak zajętość ram na zmienne...
Patrz na ostatnią linię tam stos jest już dodany... zainteresuj się tą flagą linkera -print-memory-usage
Trzeba też pamiętać, żeby zostawić trochę pamięci - od końca w dół rośnie stos.
Nie wiem jak Tobie ale w c mi wychodzi 526 taktów - czy prędkość ta jest wystarczająca? 526 taktów to bardzo dużo jak na takie operacje. Ale nie dziwota skoro kolega np w pętli for używa dla zmiennej "i" zmieniającej swoją wartość w zakresie od 0 do 8 czyli wystarczyłby jeden BAJT. Tymczasem kolega niefrasobliwie dobiera sobie typ int (DWA BAJTY) -...
Wykonałem prosty test. Użyłem możliwie najprostszej funkcji callback dla timera: Stoi na 5µs. Czasem pik do 8 góra 10 Co najmniej pięciokrotnie dłużej się wykonuje, ale to już zostawiam Tobie do dalszej analizy. Jeżeli ten callback ma faktycznie się wykonywać co 111µs, to jego czas wykonania nie powinien przekraczać 10µs - tak, aby dać...
W momencie, gdy je złożę i załaduję do arduino zostaje przydzielony mac, ip, odnalezione ip serwera, na którym stoi mysql i wykryty czujnik BME280. W tym momencie wyświetla się Connecting... i koniec. Czy sprawdzałeś, jak wygląda zajętość SRAM w trakcie działania programu? Obie biblioteki korzystają również ze sterty, oprócz stosu, więc tu może być...
jeśli zajętość data 99% to może stos wjeżdża ci już na zmienne. pozatym buffers masz zadeklarowane w rozmiarze 55 a w ISR masz index od 0 do 255 jak nic masz konflikt między tymi trzema rzeczami: stos, ten bufor, zmienne podebuguj i włącz podgląd pamięci, zobaczysz co gdzie maże
Czy jest jakiś sprzętowy mechanizm ochrony tego obszaru ? Nie ma. Jak zbadać zajętość pamięci ? Stos można po resecie zerować i na tej podstawie analizować "dokąd" jest zajęty. Do sprawdzania stanu heap można wykorzystać funkcję mallinfo() jeśli używasz toolchaina z newlibem - zerknij tutaj http://www.elektroda.pl/rtvforum/viewtop...
Sprawdz zajętość RAM. Twój program niepotrzebnie używa b. dużo miejsca na stosie, więc możesz dorzucić ze 200 bajtów do tego, co podaje kompilator. Kompilator podaje zajętość ramu około 20% procek ma 2048. Więc jest jeszcze kupa miejsca
Po pierwsze kod umieszczaj w tagach "syntax". Po drugie w jakim programie i jakiej wersji to kompilujesz, a po trzecie 75% zajętości RAM źle wróży. Moim zdaniem przepełniasz stos.
mozna tez recznie, w symulatorze jeśli chodzi o AVRStudio to zajętość Ramu w dowolnym punkcie programu oblicza się poprzez sumowanie (.sekcji data + .bss + .noinit) oraz wskaźnika stosu SP(liczonego w kierunku malejących adresów)?Co z obszarem "heap"?
8 zadań? A czemu tak dużo? Założe się że można to skutecznie zoptymalizować, np przenosząc zadania o niskim priorytecie do IddleHook (np miganie diodkami). Na stronie freeRTOS jest krótki poradnik jak optymalizować aplikacje pod względem szybkości i zajętości ramu.
Nie wiem, albo mi się wydaje, albo jakieś takie rozbudowane to masz ;) Spróbuj tego kodu, powinno działać (dobierz opóźnienia): .EQU LCD=PORTC .EQU LCD_EN=PORTC6 .EQU LCD_RS=PORTC4 .EQU LCD_RW=PORTC5 lcd_busy: ldi R16,0b11110000 out DDRC,R16 ;linie D7 - D4 przełączone w tryb wejściowy (0) cbi LCD,LCD_RS sbi LCD,LCD_RW nop ;opóźnienie minimum...
Zajętość Flash to suma text i data. Zajętość RAM - to suma data i BSS. W zależności od środowiska stos może być wliczony do BSS albo nie.
(at)kolgreen Wynik kompilacji w Arduino IDE to ma sens jedynie w odniesieniu do zajętości pamięci flash. Jeżeli chodzi o zużycie pamięci RAM, to taki test trzeba przeprowadzić w trakcie działania programu i monitorować przede wszystkim zajętość sterty (heap) oraz jej stopień fragmentacji. Zajętość pamięci przez zmienne globalne to jest problem drugorzędny...
PS. myślałem że za stos i stertę odpowiada sam "kompilator/program" a nie użytkownik (w AVR się z tym nie spotkałem). Dlatego jest to dla mnie zagadkowe :) Bo tam stos ustawiany był na koniec ramu. Co nie jest najlepszym rozwiązaniem. I tak linaro na pewno uwzględnia stos w ramach zajętości. Ci jest słuszne. Bo pokazuje prawdziwe jej wykorzystanie....
Zajętość RAM według kompilatora to 86%. ... czyli jakieś 220 B, a na stosie kilkudziesięciobajtowe wektory, który zapewne nie są uwzględnione w tym raporcie. Razem sporo ponad 256 B.
Najpierw opiszę objaw, domniemaną przyczynę a potem poprosze o rade: Mam program który pożera mi większość RAM, głównie za sprawą dużych buforów między innymi na dane pochodzące z 2 UART-ów (atmega 162) i innych zadeklarowanych tablic. Generalnie wszystko jest OK jednak kiedy powięszam wielkość zajętej pamieci RAM , tak gdzieś do zużycia jej w 80% program...
32AU4 ma 2 razy więcej pamięci RAM. Może dla mniejszego brata po prostu następuje nadpisywanie stosu lub coś podobnego. Podczas kompilacji programu, w podsumowaniu nie zawsze widać właściwą zajętość pamięci ram, szczególnie mogę wprowadzać w błąd "duże"zmienne lokalne.
A jak inicjalizujesz stos? Ponieważ kod startowy C inicjalizuje stos bardzo wcześnie, najpewniej jest on inicjalizowany zanim zainicjalizowany zostaje kontroler SDRAM. Kod inicjalizacji SDRAM musisz umieścić w sekcji .init0. Druga sprawa, że ox 0x800000 zaszyna się wewnętrzny SRAM mikrokontrolera, sekcja dla SDRAM powinna się zaczynać po SRAM (SRAM...
A jesteś pewien, że ten bufor na 100% jest we flash'u? Pisząc bufor - sugerujesz że jest to tablica zmiennych, która na bierząco pośredniczy w wymianie danych. Jeżeli tak - bufor ten musi znajdować się w ramie. W przypadku AVR nie ma możliwości zapisywania do flasha z pozoimu programu (można to tylko zrobić z sekcji bootloadera). A co mówi kompilator...
Jak mam 90%, to pojawiają się artefakty na wyświetlaczu, pomimo, że nie dodałem kodu go dotyczącego, a trochę jeszcze więcej zająć, to procesor wpada w bootloop i uruchamia się tylko setup. To raczej wynika z zachodzenia sterty na stos w pamięci RAM. Miałem kiedyś podobne przypadki. Niestety w atmega328 ciężko jest to zdiagnozować. Jaką zajętość RAM...
Tylko tego nie mogę umieścić w Flash Ale można i trzeba :) https://www.arduino.cc/reference/tr/lang... Używam PlattformIO podaje 50% wolnego RAM Problem polega na tym, że nie wliczona jest w to zajętość sterty w trakcie działania programu. Miałem wielokrotnie przygody z Atmega328P, kiedy stos "najeżdżał" na stertę i działy...
Polimorfizm i metody wirtualne zajmują pamięć w sposób statyczny, więc one nie wygenerują problemu Chodziło mi o to, że tego typu mechanizmy, nie stosowane z umiarem, mogą spowodować trudną do skontrolowania zajętość SRAM (właśnie głównie z powodu VTables), a to czy nałożenie się sterty na stos nastąpi z jednej lub drugiej strony, to już naprawdę nie...
No skoro nie są globalne albo statyczne to jak myślisz - gdzie są tworzone ? - podpowiedź: - na stosie więc nie pokaże ci się zajętość RAM sugestia: jak masz duże tablice to albo rób je zawsze jako zmienne globalne albo co najmniej statyczne - wtedy będziesz widział ile ci to zjada RAM'u. A tak? wydaje ci się że program nie zjada RAMu a tymczasem wszystko...
Zajętość RAM: proste - stos. Dodaj do tego narzut na przekazywanie zbędnych argumentów. Sugerujesz, że programista powinien podzielić program na procedury i polegać na tym, że mądry współczesny kompilator z LTO z powrotem scali to w jeden liniowy kod? No cóż, można i tak, ale skoro chcemy uzyskać liniowy kod w jednym kawałku, to może prościej byłoby...
Dobrze. To może tak: Dla czego mając 16kb FLASH nie mogę przekroczyć 60% przy kompilacji zajętości w M168 ? Po przekroczeniu tej wartości program kompiluje się, ale przestaje odpowiadać lub robi błędy po wgraniu do UC. Ustawienia stosu nic nie dają.
Skompilowałem to po wyeliminowaniu błędów. Pochodzą tylko i wyłącznie z funkcji specyficznych dla lpc210x. Z tego co mi się udało zaobserwować z kompilacji to RAM-u potrzeba 28 KB w tym: bufor na dane wyjściowe i cała pamięć alokowana przez dekoder. Nie wiem ile będzie zajmował stos. Jak określiłeś zajętość RAM, przez analizę kodu czy są jakieś inne...
(at)Mscichu Nie wiem jak z zajętością RAM w sowim systemie stoisz ale to: [syntax=c] FIL fil; /* File object */ TCHAR line[512]; /* Line buffer */ [/syntax] zajmuje na dzień dobry ponad 1KB stosu.
A problemem nie jest przypadkiem nie tyle pamięć flash (bo tu BASCOM nie powinien dopuścić do nadpisania jakichś sektorów FLASH'a) co pamięć RAM? Czy przypadkiem stos i inne funkcje nie kolidują ze zmiennymi globalnymi i dlatego wszystko się sypie, bo nadpisuje się RAM?
stack a heap to mocno inne rzeczy. One na małych architekturach mogą gdzieś tam się zazębiać, ale generalnie są oddzielne *) A stos w językach wysokopoziomowych - pewnie wiesz - to w praktyce powołanie ramki (frame) funkcji / rezygnacja z ramki (return) (na marginesie, o ile heap jest słowem generalnie jednoznacznym, to stack w 99% oznacza prostą rosnącą/malejącą...
Problemów jest wiele: Podczas kolizji (w danej chwili kanał jest zajęty) Zigbee z reguły używa funkcji autrepeat - jednak problemem jest czas w którym przychodzi pakiet i to czy pakiet faktycznie nie został odebrany czy może został odebrany ale potwierdzenie odebrania nie zostało poprawnie przyjęte przez transmitter - niestety trzeba mieć time stamp'y...
Dziękuję super podpowiedź dzięki niej udało się ustalić optymalne wartości dla ramki hw i sw. Dyrektywa $DBG faktycznie bardzo przydatna można nią wyliczyć wartości stosów dla całego programu, albo dla jakiejś jednej funkcji/procedury. Po utworzeniu pliku .log można użyć stack analizera , no i super :) Niestety nie sprawdza się dla rozbudowanych programów...
Witaj, Z tego co widzę to jakaś komercyjna wersja ide do LPC-ków bazująca na eclipse. Nie napisałeś jakiego kompilatora używasz. Informacje o wykorzystaniu ramu znajdziesz w *.map pliku lub po wykorzystaj plik kompilatora size do określenia zajętości obszaru pliku wynikowego. Naturalnie ja mam na myśli kompilator gnu gcc. Co do stosu to w gcc jest tak...
To co znalazłem w pliku *.lss nie jest dla mnie w tej chwili zrozumiałe: To sbic oraz rjmp zajmuje się testowaniem flagi zajętości EEPROM. W opisie do eeprom.h autorzy zaznaczyli, że funkcje najpierw sprawdzają zajętość podsystemu odpowiedzialnego za EEPROM. Szczegóły implementacji będą w źródłach AVR-libc, one się trochę różnią pomiędzy procesorami,...
Witaj! Adruino i Uno i Nano z Atmegą328 na pokładzie. Mega328 czyli 2kB RAM :-) Standardowo, na jedną diodę potrzeba 8 lub 9 bajtów danych. 2048/8 = 256 diod. Przypuśćmy, że dane transkodowane sa "w locie". RGB - 3 bajty na LED. 2048/3 = 682 led ale gdzieś muszą mieścić się zmienne, stos. Pokaż log z kompilacji, pewnie zajętość ram jest 80 czy 90%...
witam. ja z powodzeniem stosuje podanie 1/2 zasilania poprzez dzielnik 1k/1k. sprawdzam czy jest 1/2 zasilania jeżeli tak to jest wolna. ale przy dużym ruchu są kolizje. rozwiązałem je w ten sposób: -powstał układ master nad masterami. -wysyła on kolejnym master'om zezwolenia na nadawanie i czeka aż zasygnalizują koniec działania. wtedy zezwala następnemu.....
To 80 kilka % to pamięć programu - na 99% używasz jej tylko do odczytu. Natomiast zajętość Data to pamięć RAM - te 1408 to zmienne globalne, do tego jeszcze dochodzi zajętość związana z zmiennymi tworzonymi w trakcie działania, zarówno w funkcji main, w wszystkich wywoływanych funkcjach i do tego jeszcze parametry funkcji i adresy powrotu po wywołaniu...
Może trochę spróbuję podsumować, bo, sądząc z pytań, odpowiedzi kolegow powyżej, aczkolwiek poprawne, moga być na nieco zbyt wysokim poziomie abstrakcji :) 1. Stałe są umieszczane w pamięci programu, a nie pamięci danych. 2. AVR gcc preferuje umieszczanie stałych wewnątrz kodu rozkazu umieszczającego ją w rejestrze. Krócej się nie da, bo załadowanie...
Jest kilka możliwości. Po pierwsze procesor nie powinien się grzać, jeśli się grzeje to znaczy, że przekraczasz jego parametry, gdzieś masz zwarcie, albo czymś niepoprawnie sterujesz. Druga możliwość - BASCOM kiepsko obsługuje AVRy z tak dużą ilością pamięci FLASH, ale ten problem powinien pojawić się po przekroczeniu 128kB zajętości, co ciebie chyba...
W ramach nauki postanowiłem zrobić urządzenie na stm32f1 (512kB Flash, 64kB RAM) funkcjonalnie przypominające Palmtopa z WinCE. W miarę rozrastania się programu zacząłem zbliżać się do granic pojemność RAM. Na początku nauki pominąłem pewne aspekty dotyczące zarządzaniem pamięcią ale program zaczyna się już powoli sypać więc najwyższa pora żeby usystematyzować...
Wygląda na to, że możliwe, że jest to któreś z proponowanych rozwiązań. Co do bufora wejściowego to zwiększałem go do 4048 i nic. Bardziej wygląda to na coś z pamięcią i ze stosem, ale jak to sprawdzić? Oczywiście nie można zrobić wektora 1500 bajtów w ATmega8 - tam próbowałem różne wartości, mieszczące się w pamięci, tak aby po kompilacji był komunikat...
Zajętość pamięci RAM jest oczywista - to po prostu rozmiar wszystkich zmiennych, jakie mogą zaistnieć w najgorszym przypadku przy największym poziomie zagnieżdżenia procedur plus po jakieś 20 bajtów na każdy poziom zagnieżdżenia To zależy od uC. AVR ma dużo rejestrów i stos jest w praktyce potrzeby tylko na adres powrotu. W przerwaniach, używane rejestry...
Pozwolę sobie czepnąć się tego kodu, przynajmniej estetycznie: przekroczenie zakresu zmiennych w c to zdaje się zachowanie niezefiniowane? W związku z tym może się dla cnt bezboleśnie przekręcić licznik (tak jak chcemy tutaj) a może zacząć nadpisywać sąsiedni bajt - zależnie od kompilatora. Czy się mylę? No mylisz się. Jaki sąsiedni bajt? w zależności...
Nie wiem czy koledze o to chodzi ale poniżej przykład jak utworzyć tablicę adresów funkcji i wywoływać funkcję na podstawie jej numeru. [syntax=armasm] #include <m32def.inc> .cseg Reset: ; zainicjowanie stosu LDIR16,high (RAMEND) OUTSPH,R16 LDIR16,low (RAMEND) OUTSPL,R16 CLRR0 // zero LDIZH,high (2*Addresses) LDIZL,low (2*Addresses) LDIR16,1 //...
No fakt, ilość linii kodu to sprawa kluczowa. Naprawdę merytoryczny argument. Raczej chodziło tu o podkreslenie prostoty kodu. A'proos linii kodu to nie dalej niz 2-3 dni temu, mój syn przyszedł do mnie z bardzo podobnym problemem. Asystent z metod numerycznych (syn studiuje civil engineering - czyli cos ala budownictwo), stwiedził ze jego program...
Brakowało pamięci RAM. Kompilator pokazywał około 1,2k wolnego ale jak podliczyłem dynamiczne zmienne to mi wyszło, że może brakować kilka bajtów. Korzystałeś może z biblioteki Adafruit? Staram się unikać bibliotek z tej stajni - w ogóle nie są one optymalizowane pod kątem zajętości sterty w SRAM. To akurat nie ma znaczenia bo OLED 128x64 potrzebuje...
Przecież nie musisz wczytywać całego pliku na raz. Nie masz miejsca na 20kB, ale już 2kB spokojnie zmieścisz. Tekst z pliku z podstawionymi zmiennymi możesz wysłać bezpośrednio do klienta, albo zapisać do pliku. Nie masz czego analizować po zmianie zawartości pliku, jeśli napiszesz np. tak: Problem w tym, że ten plik ma dosyć dużo tekstu w HTML+javascript,...
Przeniosę to przerwanie i tablice do plików .c. Ale wtedy w pliku głównym .c mam includować plik przerwania .c? Myślałem, że tam inkluduje się tylko pliki .h Nie musisz include'ować pliku .c, a nawet nie powinieneś. W Makefile dopisz go tylko do plików źródłowych (SRC = $(TARGET).c przerwanie.c inny_plik.c itd.) a linker odwali resztę roboty. Zostało...
Dokładnie tak. Niestety nie jest to takie proste. Po pierwsze zużycie flash to co najmniej "text + data", a zużycie RAM to co najmniej "data + bss". Liczby te mogą (ale nie muszą) uwzględniać stosu i sterty. Całkiem często realnie zużycie statyczne jest nieco większe niż powyższe sumy. Dlatego osobiście polecam dodać sobie do linkera opcję `-Wl,--print-memory-usage`...
slawek55 ---> twoje pytanie wynika z dużej niewiedzy na temat działania języka C .... warto poczytać dokładniej na te tematy. Ale jak jeszcze raz napiszesz, że gdzieś w kompilatorze czy symulatorze jest błąd - to ja ci już więcej nie pomogę ;) .... bo zawsze uważam to za jakąś masakrę, że ludzie zamiast poczytać, doczytać i poszukać błędów w swoim...
Dzięki Paweł - tak to sobie mniej więcej wyobrażałem tylko ze nie dał bym rady tego zrobić - brak mi i przyżądów i wiedzy do analogowych konstrukcji dlatego szukałem "cyfrowego" sposobu . Mam już ten scalak i sprawę filtrów wzmacniaczy itp. mam załatwioną Wchodzę sygnałem (z trafa) do scalaka i na wyjściu mam "1" - kę jeśli sygnał na linii jest większy...
Po co te filtry? Bardzo dobre pytanie bowiem rzeczywiście drabinkowe filtry kwarcowe są stosowane na skalę przemysłową bardzo rzadko. Do przesyłania sygnału (każdego) na odległość niezbędna jest "zajętość" pewnego wycinka (pasma) częstotliwości. Dotyczy to zarówno sygnałów cyfrowych jak też i analogowych. Chcąc zatem "upchnąć" jak największą liczbę...
Inna sprawa to że, nie wiem na ile wiarygodne są te informacje i skąd one pochodzą - czy to jest bezpośredni odczyt z oprogramowania modemu (raczej wątpię żebyś miał dostęp). Przypomina to managera od sterowników do Sagem'a Fast800, ewentualnie któryś z "chińczyków" - tak czy inaczej nie są to zbyt dokładne dane. Z drugiej strony w praktyce nie spotkałem...
Marico ma rację - jednak zostają śmieci, oczywiście zgodnie z tym co napisał... w tym FLASH trzeba umieścić CRC, który to CRC zmieni zawartość FLASH To jest akurat stosunkowo proste - wartość CRC jest zapisana jako string, poprzedzony odpowiednim prefixem. Wystarczy go odszukać w pamięci i pominąć podczas liczenia CRC. Faktem jest natomiast, że jest...
Nad przekaźnikami też się zastanawiam, ale raczej będzie to ostateczność. Bezpieczeństwo jest tu najważniejsze a przekaźniki mają tendencje do sklejania się styków lub innych, nawet opisywanych przez ciebie uszkodzeń. Zwróć uwagę że, opisywane problemy tyczą się raczej dużych prądów. Przy małych prądach, schodzimy do strat dużo mniejszych niż zasilanie...
Kiedyś zrobiłem taki system jak opisany niżej i działa bez problemu: Jest jedno nadrzędne urządzenie, nazwijmy Master i kilkanaście urządzeń podrzędnych, nazwijmy Slave. Master cyklicznie odpytuje kolejne Slave, jaka jest ich potrzeba przejęcia magistrali. Jednostką była ilość urządzeń do których dany Slave potrzebował przesłać dane. Jednocześnie w...
Myslę, że w następnej edycji trochę o skryptach linkera powinno się znaleźć. Kol (at)tmf na pewno nad tym pracuje. Dostęp przez wskaźniki jest mało wygodny, lepiej używać do tego C - niech samo sobie liczy adresy zajętości i tym podobne drobnostki. Ale to wymaga odrobinę więcej zachodu i wiedzy - ale wiedza odpłaci się koledze z nawiązką. Znajdź sobie...
W opisie wyrobu brak istotnego szczegółu. Tłumienie i częstotliwości graniczne - proszę nie mylić i nie łączyć tych parametrów - poszczególnych torów w kablu UTP są bardzo różne i uzależnione od skoku skrętu kabla. W tych transformatorach przekaz pasma wizyjnego dokonywany jest na pinach 7-8, w większości produkowanych kabli UTP to nie tor brązowy jest...
Dolozylem do zegara zrobionego na hd44780 i atmedze16 jedne dodatkowe wywolanie funkcji co mi wyswietla znaki (dolozylem sobie sekundy na lcd). Program napisany w c kompilowany pod gcc WinAVR-20081205 I zegarek umarl. W symulatorze mam komunikat AVR Simulator: Invalid opcode 0xffff at address 0x001e04 Co to moze byc ? Czyzby stos sie mogl przepelnic...
Zajętość pamięci dynamicznej możesz zmniejszyć stosując makro F() dla łańcuchów tekstowych - będą wtedy one umieszczane tylko w pamięci flash, np.: Dodano po 3 W celu zmniejszenia zużycia pamięci RAM sugeruję również użycie innej biblioteki do obsługi sensora BME280, zamiast tej od Adafruit. Link do biblioteki: https://github.com/finitespace/BME280
i nie pisze się zużycie CPU tylko użycie, jeżeli coś jest zużyte w 100% to nadaje się do śmieci. Kolego prosimy nie mieszać, bo teraz autorowi wydaje się, że zużył mu się procesor. Określenie niefachowe - każdy wie o co chodzi, nie będziemy wchodzić w niuanse języka polskiego stosująć wyrazy "utylizacja" :) (też się zdarzyło) "zajętość" itp. Czyli...
Jeśli idziemy w stronę narzędzi co zrobić, żeby się nie narobić , to znacznie wygodniejsze są "języki" operujące schematami ideowymi czy blokowymi. Miałem (nie)wątpliwą przyjemność realizacji projektów w LabView, a ostatnio oglądałem z bliska Actum Realizer. W stosunku do języków BASICO-podobnych, narzędzia te mają dwie duże zalety. Po pierwsze programowanie...
Dane dla animacji o długości 6336 bajtów zostały spakowane do długości 2638 bajtów i są rozpakowywane "w locie" podczas wyświetlania. Zajętość pamięci po spakowaniu wynosi 41,6% pierwotnej długości. Do rozpakowania służy podprogram UNPACKER zawarty w tym programie. Napisałem go specjalnie dla tego programu, ale może być wykorzystany przez innych użytkowników...
pominę takie szeroko stosowane i "wysokowydajne" zastosowania C jak formatowanie liczby przez sprintf i podobne. Wszystko bierze się z bezrefleksyjnego przekazywania/kopiowania/nauki ze złych wzorów A co niby takiego złego jest w tej funkcji? Najlepiej jest formatować na piechotę wynajdując przy okazji koło na nowo. Mnie ręce opadają jak co najmniej...
Podłącz według kawałka tego schematu, możesz podłączyć go np. do jakiejś '51 zamieszczam jeszcze procedury inicjujące LCD_INIT: MOV A,#0FH ; inicjacja wyswietlacza LCD LCALL CZEKAJ ;opoznienie 15 ms czas w akumulatorze CLR RW ;RW==0 zapis do LCD CLR RS ;RS==0 zapisujemy komendy do wyswietlacza LCD MOV R0,#3 ;licznik petli PETLA: SETB E ANL LCD,#09CH...
Cześć! Poszukuję wsparci gdyż powstał mętlik w głowie. Mam program, który komunikuję się z modułem GSM, używa wielu globalnych tablic, funkcji operujących na strumieniach typu strcpy, str n cpy, strstr, strtok, poniżej wklejam większość deklaracji dużych zmiennych: Dodano po 1 Przeniosłem deklarację StackPoint z .int1 do .int3 i program zaczął wyświetlać...
Nie bawiłem się w tej aplikacji w opcje takie jak "niepotrzebne pliki", bo nie wiadomo co mi to pousuwa. Ja mam 1. Pliki śmieci 2. Zwiększenie pamięci Stosuję je standardowo i jak do tej pory nie sprawiło mi żadnych przykrych niespodzianek. Głębsze i zaawansowane sprzątanie nie stosuję ( bo coś tam) Dodano po 3 W tej chwili zapełnone 447 MB RAMu z...
czasem stosuje się taki prymitywny system wykrywania pociągu na szlaku poprzez mierzenie rezystancji między szynami. Tak, były takie urządzenia sterowania ruchem, do dziś jest podobnie tylko nie wiem jakie tam idą napięcia, ale do tych urządzen były stosowane odcinki toró tzw "odcinki izolowane" ale dziś to już raczej rzadko się to stosuje, "wykrywanie"...
Obawiam się, że to nic nie pomoże. Żadne narzędzia nie pokazują co dokładnie to miejsce zajmuje. Sprawdziłem podaną aplikację u siebie, gdzie mam zajęte około 14GB pamięci przez "Inne". Pewnie mając roota dało by się sprawdzić. Tego typu wątki przewijają się po forach i dotyczą różnych modeli smartfonów. Co ciekawe nie pomaga na przykład factory reset....
Ponieważ nie miałem nigdy kamery w monitoringu, to jeszcze podpytam i proszę się nie śmiać ;-) Zdecydowałem na 100% na H.265, przy Synology daje to bardzo dobre wyniki jeśli chodzi o zajętość dysku w stosunku do H.264. Kamera z tym kodekiem jest nieco droższa, więc odrzuciłem raczej kamery z zoom-em i ptz. Moje pytania : - czy jest sens przy moim podwórku...
uruchamianie za każdym razem openocd Akurat OpenOCD nie trzeba uruchamiać za każdym razem. Ono sobie może chodzić cały czas. Nie ma najmniejszej potrzeby aby zamykać akurat ten program. Prawdopodobnie kwestia ustawienia poprawnego parsowania - podejrzę jak zrobiłeś to w swoim przykładzie. Zobacz jak jest ustawiony "build output parser" w tym problematycznym...
(...) m, w tym ściana działowa i nośna. Właśnie w tym pokoju mam gniazdko ethernet i chcę postawić (chyba) AP. AI: Czy próbowałeś zmieniać kanały WiFi w ustawieniach ConnectBoxa, aby zminimalizować zakłócenia z sąsiednich sieci? Tak, ale praktycznie na każdym kanale są po 3-4 sieci. Nic to nie pomaga. Wstępna ocena dostępnych informacji Na podstawie...
czy stosujesz Atmel-ICE, czy JTAGICEIII to możliwości są takie same Czyli zostaje ICE bo obsługuje minimalnie więcej procków. przypadku Atmel-ICE są o tyle istotne, że stosuje on złącza 50mils, które nie są popularne i dostępne w sklepie za rogiem W moim mieście nic nie jest dostępne. Jak idę do elektronika i proszę kondensator SMD 805/1206 to dostaję...
Fakt, przy jednym pliku kompilatorowi łatwiej poradzić sobie z optymalizacją, niż przy wielu plikach, zwłaszcza, gdy kod jest zabałaganiony. Przy poprawnym użyciu static i ustawieniach, o których pisałem, wciąż jeden plik może dać kod krótszy, ale nie na tyle, by gra była warta świeczki. W końcu podział programu na pliki czemuś służy - choćby zwiększeniu...
Z tymi wieloma WG to na razie teoria, bo mam tylko jeden... Raczej zrobię jakiś układ przekaźnikowy lub przekaźnikowo- półprzewodnikowy zamiast szukacza. Przykładowo, zastanawiałem się nad czymś takim, jak w załączniku. Niech będzie tylko na razie centrala z WL. Dodatkowo, niechby każdemu abonentowi dać szeregowo cewkę przekaźnika z opóźnionym działaniem...
Witam Utworzyłem nowy temat ponieważ nie widziałem żadnego podobnego tematu na elektrodzie. Otóż potrzebuję pomocy odnośnie wyświetlania znaków na wyświetlaczu LCD. Jest on zgodny z HD44780 (jego numer to: WC1602ASFYLY...). Chodzi mi o kod programu napisany w języku Assembler tylko, że bez dołączanych do niego bibliotek oraz przypisywania innych nazw...
Bariera optoelektroniczna, np wykrywanie czy zajęte miesce na fotelu, i inne takie. Bariera optoelektroniczna w zabezpieczeniu samochodu. Nie chcę się sprzeczać bo nie znam takich rozwiązań ale w barierach optycznych stosuje się raczej fotodiody lub fototranzystory, bo wiązka zazwyczaj jest IR i do tego modulowana, na co fotorezystor jest zwyczajnie...
Zbynia ,coś zamieszałeś.Twoim zdaniem zasilacz 300W pobiera tyle niezależnie od obciążenia?To by znaczyło że bez obciążenia grzeje się najbardziej jeśli wszystko czego z niego nie wyciągniesz zamieni w ciepło.Tak na pewno nie jest ,po to się m.in. stosuje przetwornicę impulsową żeby uzyskać dużą sprawność.Zasilacz ATX bez obciążenia pobiera najwyżej...
Cześć, Została to wspomniana moja biblioteka do obsługi systemu plików ext2/3/4. Napisałem ta bibliotekę do własnych celów w zeszłym roku. Duża jej część bazuje na implementacji systemu operacyjnego HelenOS. Jednak trzeba było się trochę nagimnastykować aby odpalić ją na mikrokontrolerze ;). Biblioteka umożliwia obsługę: - ext2 (większość funkcjonalności)...
No nie bardzo. Układ działa tylko dla prądu płynącego w jednym kierunku. Mostek możesz dołożyć przed nim. Układ dwukierunkowy można również zbudować bez mostka, dokładając do powyższego trzy (minimum dwa) tranzystory i parę innych elementów, ale to już komplikacja. Można również badać napięcie na dwóch szeregowych diodach, czyli jw. i zasilać nim transoptor....
W legalny sposób bez tzw. pozwolenia radiowego możesz przesłać 1 klatkę obrazu w ciągu kilku lub kilkunastu dni w zależności od kompresji i rozdzielczości. Przyjmij do obliczeń maksymalny współczynnik zajętości pasma na poziomie 0.1% i prędkość bitową do 1kb/s. Zasięg 10km teoretycznie masz szanse osiągnąć stosując modulację LoRa ale wiąże się to z...
MultiCam Remote View System służy tylko do podglądu na żywo. Największe możliwości jeśli chodzi o podgląd nagrań, sterowanie i podgląd live daje Serwer Control Center. możesz np właczyć sobie zdalny pulpit, albo uzyskać bezpośredni dostęp do nagrań. Jakość jest bardzo dobra - wszystko zależy od łącza - zajętość pasma dochodzi do 30Mbit. Nie mam możliwości...
Po zastosowaniu wszystkich fix-ów i odchudzania z linku YT powyżej podanego przez Tomequ123. Ale bez wyłączania jednak microsoftowego defendera! Zajętość pamięci wynosiła 15% z 12GB System przez weekend był obserwowany i każdy ruch (uaktualnienia proponowane przez Update) czy start z drugiej partycji gdzie mam miesięczną instalację 7ki do celów testowych....
http://obrazki.elektroda.pl/1647269200_1... Witam wszystkich Tym razem chciałbym przedstawić jeszcze programowy projekt odtwarzacza i dyktafonu zrealizowany na STM32F4Discovery. Pisząc ten program, sporo rozwiązań wykorzystałem z mojego poprzedniego projektu małego odtwarzacza MP3 na ARM-ie, ale dołożyłem też dużo nowości i usprawnień....
No więc nie jestem specem od Pentaconty ale... robiąc we Wrocławiu w roku 1990 kurs mistrzowski kablowy na moim "roku" drzwi w drzwi odbywał się kurs obsługi od Pentacont. Trochę się nasłuchałem wiadomości i z tego co wiem to: dla danej grupy abonentów a było ich kilka na każdej centrali zależnie od wielkości były w celu sprawniejszego wybierania zestawiane...
Przepraszam , ale co ma do tego hibernacja??? bo nie rozumiem?? (jestem zbyt zielony w tych sprawach , także proszę o wyrozumiałość) a jeśli przeniosę pliki wirtualnej pamięci , opróżnię i przeniosą lokalizację folderów tpm i temp , to dużo miejsca na C się zwolni??? Usuń s postów te nadmiarowe znaki zapytania, bo źle skończysz. Do tego co MARCIN.SLASK...
Nie bardzo też rozumiem, jak użycie pętli zdarzeń zmniejsza zajętość RAM - magia jakaś... Może niejasno napisałem ale chodziło mi o mniejsze zużycie w stosunku do RTOS. Chciałbym zobaczyć ten low power z pętlą zdarzeń. Tzn. kiedyś były takie procesory, na których to się dawało zrobić poprawnie, ale już wyginęły. Na ogół jest ALBO low power ALBO pętla...
Witam Jak wiadomo sztandarowym i w dodatku darmowym programem do skanowania sieci pod Windą jest NetStumbler. Jednak od kilku lat aplikacja już nie jest rozwijana (v0.4.0). Ponadto nie działa pod Vistą, i przypuszczam także pod Win 7 (choć pod tym ostatnim nie próbowałem). Dlatego już jakiś czas temu wynalazłem w sieci freewarowego inSSIDer -a. Program...
Dzięki za propozycję. Pobrałem i zainstalowałem najnowszą wersję SW4STM32 v.2.9. Faktycznie są nowe procesory:) Jednak przy generowaniu nowego projektu niestety nie mam możliwości wybrania bibliotek innych niż HALowskie... No bo innych już nie będzie :) Należy pobrać Cube HAL i z tym też będziesz miał nagłówki CMSIS, należy tylko wywalić HALA i pisać...
Tak właśnie myślałem że używanie przerwań i poleceń wait nie jest dobrym rozwiązaniem. Dzięki za odpowiedź. To nie ma nic wspólnego. Po to są przerwania żeby w ten sposób z nich korzystać. Natomiast twój problem bierze się z całkowicie czegoś innego. Po prostu tak napisałeś przerwanie i tak często je wykonujesz, że u ciebie w tym konkretnym przypadku...
Nie mogę poradzić sobie z uruchomieniem tego wyświetlacza: .EQUK_LCD_DANE = DDRF ;kierunek portu wyświetlacza .EQUI_LCD_DANE = PINF ;wejście portu wyświetlacza .EQUO_LCD_DANE = PORTF ;wyjście portu wyświetlacza .EQU DB0 = 0 .EQUK_LCD_STER = DDRB ;kierunek portu sterowania wyświetlacza .EQUI_LCD_STER = PINB ;wejście portu sterowania wyświetlacza .EQUO_LCD_STER...
Stosunkowo szybkim sposobem wyliczenia sekwencji punktów funkcji sinus/cosinus jest całkowanie równania różniczkowego układu drgającego bez tłumienia metodami numerycznymi (np. RK-4, czy Adamsa). x''=-ax przy warunku x(0)=0 ; x'(0)=1 Wyliczenie kolejnego punktu to kilka mnożeń i dodawań. W przypadku 32-bitowej reprezentacji stałoprzecinkowej ta metoda...
czujnik zajętość zajętość dysku sprawdzić zajętość
nagłośnienie plenerowe alternator trafic excel wynik szuka
zasilacz buforowy pralka samsung ecobubble
Czujniki wału korbowego i rozrządu w Fiat Ducato Mikroinwerter Hoymiles HMT-2250-6T z 4 panelami