Czy w tym Delphi7 (niestety, nie znam) można odpalić wątek? Pętla typu sleep (10ms), wyślij ramkę i tak kółko powinna być chyba oddzielnym wątkiem + jakiś message do głównego, że trzeba odświerzyć obrazek. Prędkość COM-a 115200 ?
Tak, właśnie po wrzuceniu kolejnego wątku, pętla komunikatów już nie jest blokowana i program działa poprawnie. Też po paru dniach o tym pomyślałem. Dzięki za odpowiedzi. Rozwiązane wg: http://cpp0x.pl/kursy/Kurs-WinAPI-C++/Za...
Dlaczego goto? Wystarczy zwykła pętla while, którą zakończysz gdy będziesz chciał skończyć wątek.
To jeden z powodów dla których śledzę ten wątek - ciekawi mnie, czy to faktycznie pętla masy, czy może coś innego.
A jak kolega ma wcisnąć ten przycisk, skoro aplikacja podczas wykonywania pętli nie reaguje na akcje użytkownika? Najlepszym jednak rozwiązaniem byłoby właśnie zastosowanie wątków. Wtedy pętla w wątku, a przycisk przerywa jej działanie.
Skoro dla każdego rdzenia trzeba tworzyć oddzielne pętle void-setup i void-loop, to czy również trzeba pisać oddzielne funkcje? Czy funkcja może być jedna a każdy rdzeń może ją wywoływać oddzielnie/niezależnie? Jak najbardziej definicja funkcji może być jedna i można taką funkcję wywoływać w różnych wątkach (pętlach). Trzeba jednak pamiętać, że przy...
Monitory chyba są ok. To bardziej pętla mas, lub zasilacz laptopa sieje brumem. Odłącz zasilacz od laptopa i sprawdź, czy jak chodzi na bateriach, to czy też brumi z kolumn. I czy jak łączysz laptop z kolumnami za pośrednictwem miksera, też brumi. Poszukaj i poczytaj - na forum i w sieci znajdziesz sporo wątków, omawiających temat pętli mas, brumu/...
Witam. Mam taki o to kawałek kodu [syntax=csharp]private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { start_muzyka = new Thread(new ThreadStart(muzyczka)); start_muzyka.IsBackground = true; Random losuj = new Random(); do { abc = DateTime.Now; Hour = abc.Hour; Minute = abc.Minute; int a = losuj.Next(0, licznik); if ( // ( // (Minute...
Stosuję jedynie to co Delphi 7 ma w standardzie. W związku z tym są to funkcje WinApi. Właśnie na nich mam wykonaną obsługę RS232. Nic innego nie wypada mi zastosować. Wątek jest uruchamiany dopiero w momencie, gdy dane mogą się pojawić. Jeżeli zatrzymam wątek po odebraniu bajtu danych, to mogę przegapić następny bajt. W zasadzie to wielowątkowość nie...
Pomyśl, co się stanie, gdy przerwanie timera zostanie zgłoszone w trakcie wykonywania modyfikacji portu w pętli głównej, po odczycie PORTB, a przed jego zapisem. Jeśli wyjścia są modyfikowane w przerwaniach - nie należy modyfikować innych wyjść tego samego portu w wątku głównym. To jedna z wielu przesłanek za tym, by "pętla główna" była pusta. Inaczej...
Jeśli będzie to pętla na oddzielnym wątku, to tak.
No dobra, mam taką procedurkę która sprawdza wartość ze stronki [syntax=delphi]procedure TPing.Execute; var val : string; begin while not Terminated do begin try val := Form1.IdHTTP1.Get('http://localhost/ping... if val = '0' then Form1.Button4.Click; Sleep(1000); except Sleep(1000); end; end; end;[/syntax] A w Button4.Click mam: [syntax=delphi]procedure...
Naprawdę ktokolwiek z tego grona jest gotów przeczytać artykuł z hotnews.pl i w niego uwierzyć? No przecież cały wątek nadaje się do śmietnika.
Nie zrozumiałeś mnie. Taka sama komenda drukowania dodana do funkcji mainProcess powoduje wypisanie "0". Rozwijając temat: Działają dwa wątki: główny i dodatkowy "mainProcess". W wątku "mainProcess" jest pętla "while( aborted == false) { cośtam }". Teraz w wątku głownym wywołuje "disconnect": w tej funkcji ustawiane jest "aborted = true" i na potwierdzenie...
Tak - najlepiej wątki. Względnie w pętli umieścić komunikat przetwarzania kolejki wiadomości (Application.ProcessMessages).
Wydaje mi się, że najprościej będzie dodać jedno pole do klasy. Przed uruchomieniem wątku, ustawiasz temu polu potrzebną wartość, a funkcja run wykorzystuje ją.
Witam. potrzebuję zaprogramować atmega8, tak aby uP kontrolował temperaturę i sterował tranzystorem a jednocześnie obsługiwał rs232 w jakiejś pętli, która zbiera dane na PC do wizualizacji. Moje pytanie to jak zaprogramować atmega najlepiej w bascomie aby wykonywał kilka wątków jednocześnie. Aby jedna pętla nie blokowała innej pętli. pozdrawiam.
podczas tych 889 us, funkcja Sleep i SwitchToThread mówi systemowi że Twój wątek chwilowo nie chce działać, że system ma oddać pałeczkę do innego wątku w którymś tam procesie na liście. Jeśli kolejny wątek z listy jest w stanie uśpienia (na przykład wykonuje Sleep) to jest pomijany póki stan uśpienia się nie zakończy. Ale jeśli kolejny wątek jest aktywny,...
C# jest dosyć wdzięcznym środowiskiem do pracy wielowątkowej, i osobiście to je proponuję do nauki. Nie dość że daje możliwość "własnoręcznego" grzebania w wątkach, to oferuje też klasy "ukrywające" tą całą wielowątkowość (jak BackgroundWorker - w obsłudze prosty jak timer, a odpalający zadanie w nowym wątku), aż po (w wersji .NET 4) rozwiązania jeszcze...
I czy obsługę LCD masz na myśli żeby dać coś w rodzaju drugiej pętli loop? W Arduino Core dla ESP32 tzw. pętla loop() to tak naprawdę wątek automagicznie tworzony przy starcie: Niskim, tzn jaki byś dał? Niski, ale wyższy od 1. To zależy też od tego, co jest obsługiwane w wątku loop() i jak często ma być obsługiwane - domyślnie wątek loop() wykonuje...
Nie ma żadnych przeciwskazań. Jeśli wątki mają się jakoś komunikować, to oczywiście musisz sensownie taką komunikację zaplanować. Pozdrawiam, Dr.Vee
Czytając ten wątek czuję się młodszy o 25 lat. ;)
Pod Linuksem/Wine nie crashuje i działa jeśli poprawię tak jak sugeruję poniżej. Ale wydaje mi się że nie crashuje nawet pod oryginalnym Windowsem - po prostu się kończy. Program kończy się razem z funkcją main, więc zatrzymaj ją po utworzeniu wątku - masz trochę opcji: Pętla wiadomości, WaitForSingleObject, a dla testów to nawet: for(;;); ;)...
Hmmm zaczyna mi się sesja i chyba projekt zostanie odstawiony co najmniej do 16.06... A czy oprócz timera jest jeszcze w głównym wątku miejsce gdzie można coś wykonywać w kółko (pewnie pętla komunikatów)? Chodzi mi o takie miejsce jak funkcja wątku pobocznego czy jest takie miejsce w jak funkcja wątku głównego?
Ta pętla ma się wykonywać w osobnym wątku, na każdym kroku sprawdzając wartość strażnika. Funkcja wyłączająca powinna zmienić stan tego strażnika.
Tak jak kolega radził, najlepiej w pierwszej procedurze odpalić wątek. Jeśli jednak jest to jakaś pętla, to prawdopodobnie można wymusić przetwarzanie kolejki komunikatów (ProcessMessages) - wówczas do głosu dopuszczona zostałaby procedura druga (a konkretnie - zdarzenie i powiązana z nim procedura).
1. Zrób każde zadanie jako oddzielny "wątek" pętli głównej. 2. Kod musi być nie blokujący. Wyczyny typu "waitms" przecz...
Po pierwsze pętla taka musi działać w osobnym wątku. Jeśli już tak jest, to przyciśnięcie przycisku 2 (zdarzenie) powinno ustawić jakąś flagę (najlepiej chronioną sekcją krytyczną), która to flaga będzie sprawdzana w pętli.
Oj, wardach, sam miał przeczytać specyfikację instrukcji random ;) Przy okazji - w Timerze jest zupełnie zbędny ProcessMEssage - to jest osobny wątek, więc nie ma wpływu taka instrukcja. a tak generalnie to trochę uprościć by zapis można było :) procedure TForm1.Timer1Timer(Sender: TObject); begin //randomize; - wynieść do sekcji inicjalizacyjnej,...
1. Odczytaj czas (time_t) 2. Dodaj do niego okres który chcesz "poczekać", zapisz w zmiennej. 3. Odczytuj w pętli czas (time_t) sprawdzaj z zapisaną wartością, czy czas już upłynął. Trudne? Jeśli chciałbyś nie blokować procesora trzeba - wejść w np. w wątki.
VC6 to strasznie muzealny zabytek - co cię przy nim trzyma? WINAPI to też nie jest coś w czym wygodnie się cokolwiek piszę, zaprzyjaźnij się np. z Qt. Znalazlem, ze musze skorzystac z funkcji i utworzyc nowy watek, uzyc "czekajacych" funkcji. Tak, w twojej funkcji CADlg::OnOK tworzysz wątek i uruchamiasz wątek (który będzie pobierać twoje dane), a sama...
Z tego co pamiętam paradox nie obsługuje transakcji, możesz zgłębić ten wątek może być pomocny z caschedupdates: http://docwiki.embarcadero.com/RADStudio... Jeśli potrzebujesz tylko wrzucić dane to propozycja taka: podłączenie do bazy z MS Access lub nawet Excela przez odbc driver i kopiuj wklej dane. Jeśli jednak ma...
Korzystam z telefonu Samsung Monte. Napisałem aplikację wysyłającą ciągi bajtów typu: [syntax=java] writer=conn.openInputstream(); writer.write('D'); writer.write('A); writer.flush(); ....... [/syntax] Wysyłanie jest bardzo powolne jak na możliwości Bluetooth. Tym bardziej, że ja chcę wysyłać w pętli ciągi znaków. Zrobiłem nawet krótki test. Mianowicie...
Hej Napisałem dwuwątkowy program, który ma czytać z portu i wysyłać dane przez tcp. W tym celu jeden wątek jest odpoweidzialny za czytanie, drugi za wysyłanie. Oba wątki uruchamiają się (korzytsam z pthread.h), ale...problem polega na tym iż pętla główna wątku czytającego z portu zachowuje sie co najmniej dziwnie : wklejam kod i wyjśćie : printf("\n\r...
Realizacja nie jest chyba jakoś szczególnie trudna. IMO zadanie trzeba rozwiązać przy pomocy aplikacji składającej się z 3 wątków. W każdym z pętli realizowana będzie w osobnym wątku. Przyciski START i STOP będą realizowały ich uruchamianie. Niestety C++ nie jest moją mocną stroną i nie pomogę Ci już z samym kodem, może ktoś inny coś Ci podrzuci. Poszperaj...
Zaznaczony obszar pętli masz żółtym kolorem. https://obrazki.elektroda.pl/7716023100_... Ty się dobrze czujesz? Górne cztery modułu to inny string niż te pod nimi, skąd więc tam wg Ciebie pętla? Przyjrzyj się też podziałowi modułów na stringi ;-). Osobiście nie jestem zwolennikiem takiego łączenia modułów (powody podałem w innym wątku),...
Teraz już jaśniej :) Ale trochę tutaj mi nie pasuje układ... W wątku wysyłasz do serwera wiadomość, ale w głównym oczekujesz potwierdzenia odbioru, po czym chcesz odczytywać ale już w wątku... Generalnie - takie zachowanie, jakiego oczekujesz, nie jest możliwe, bo ewentualny błąd w wątku nie zostanie obsłużony przez blok try..cach, który wątek uruchamia....
Dzięki, zapoznałem się, ale nie posunęło to mojej sprawy do przodu :P Przede wszystkim nie umiem tego użyć. A poza tym, nie jestem pewien czy o to właśnie mi chodzi. Nie potrzebuję precyzyjnego mierzenia czasu. Potrzebuję jakiś sposób na wstrzymanie wątku, takie żeby nie zajmowało procesora (jak pusta pętla for - w ten sposób mogę to zrobić bez problemu...
Niestety jeśli zajmiesz główny wątek, to Timer który z pewnością jest w nim zdefiniowany także nie będzie działał... Jeśli chcesz oczekiwać na coś w pętli - zdefiniuj to na osobnym wątku.
Serwer też jest dżawowy ? :) Generalnie powinno to być na zasadzie - pytanie - odpowiedź (o ile potrzebna) Trochę dziwi mnie kierunek przepływu (serwer wysyła dane wejściowe a odbiera przeliczone wartości), chyba, że coś źle zrozumiałem. Generalnie powinno to wyglądać tak, że uruchamiasz wątek, który czeka w nieskończonej pętli na połączenie od klienta,...
Nic skomplikowanego "na oko" ;) Pętla, metoda 'Find', itd... Jest kilka (nawet niedawnych) podobnych wątków, poszukaj. Załącz plik z układem jak w oryginale (od v.2k7 spakowany zip/rar).
poczytaj w tym wątku o "zasobniku z mamką " to rowiązenie dedykowane do pomp ciepła, resztę kombinujesz prawidłowo http://poszukaj.elektroda.pl/search.php?... drabinka w łazience może być jako odrębna pętla o małym schłodzeniu , lub początek krótszej pętli podłogówki.
Bo generalnie pętla nieskończona nie jest dobrym pomysłem w tym wypadku, samo nasłuchiwanie powinno iść w wątku. Sprawdzasz pending i usypiasz na jakiś czas jeśli nic nie ma. PS. Nie edytuj kodu z pierwszego posta bo potem nie będzie wiadomo o co chodziło.
Skoro agregat nie zapewni odpowiedniej pętli zwarcia to nie można tej instalacji zasilać z tego agregatu a nie przebudowywać na układ w którym pętla zwarcia ma jeszcze większą impedancję. I cały problem tego wątku został ujęty w jednym zdaniu, a problemem jest to że autor próbuje podłączyć do instalacji agregat przenośny który został przystosowany...
Robisz socket, na sockecie bind, listen i potem w nieskończonej pętli accept. Jak się klient połączy to robisz nowy wątek i przekazujesz mu nowy socket (ten który accept zwróci) a pętla główna znowu wisi na accept. Można to samo zrobić na zdarzeniach, wtedy po wywołaniu zdarzenia robisz nowy wątek i przekazujesz mu socket. Masz bardzo prosty przypadek,...
ach myślałem o tym ale... w jaki sposób ten drugi wątek napisać aby odmierzał tak dokładnie czas - masło maślane.... teraz mam to w wątku głównym, nie wiem tylko czemu w moim wypadku ZAWSZE zajmuje taka pętla 25% czasu procesora niezależnie od priorytetu (być może że to procesor 4 rdzeniowy) musze sprawdzić na jednordzeniowym.
można wszystkie te problemy rozwiązać w dość łatwy sposób (co nie oznacza, że go polecam - są bardziej czytelne i pewne metody rozwiązania przekazania sygnału z przerwania): kod główny służy za kod do inicjalizacji procesora - ustawia wszystko, załącza przerwania i wskakuje w pętlę nieskończoną. Teraz gdy pojawi się przerwanie, to nastąpi skok do funkcji...
RS485 nie zajmuje się tym problemem. Standard tylko mówi (o ile pamiętam) że róznica poziomów pomiedzy stronami nie może byś większa od +-7V. Jest wiele metod osiągnięcia izolacji - np przez użycie odpowiednich transceiver-ów. Np TI ISOW1432. Mają one z reguły wbudowane konwertery DC/DC izolujące zasilanie bardzo ułatwiając projektowanie. A pewnie...
Witam. Parę dni wcześniej miałem podobny problem z Sleep. Tyle że u mnie było wyświetlanie po jednej literce na np. Edit1 w petli. Wyglądało to tak że napis się pojawial ale dopiero jak pętla się wykonała i to cały na raz. Ktoś mi odpisał abym zastosował osobny wątek i zadziałało. Tu masz jak zrobic wątek: http://cyfbar.republika.pl/api2.html#api...
Na porcie szeregowym odczytasz max 20KHz. Zrób w programie wątek który w pętli sprawdza stan portu COM oraz zlicza liczbę zmian stanów. Lepszy od kontaktrona byłby halotron (ew opto). Możesz ustawić poziom wysoki (+12) na jednym z wyjść portu. Oraz połączyć kontaktronem na któreś z wejść. Wejście połącz rezystorem 10K na wyjście na którym ustawisz stan...
Nie masz żadnej grafiki na płycie. Ona jest w procesorze. To może mieć związek z moją diagnozą CPU vs płyta. Zainstaluj directX. Było pisane: Przeinstaluj profilaktycznie DirectX Jeśli to błędy w systemie zweryfikujesz to właśnie bootowalnym np. linuxem: https://linuxmint.com/download.php Czy da się je włączyć Cały wątek nie podałeś jak masz OS.
Zjawiska relatywistyczne, lot samolotem i przesunięcie czasowe 5min to nie te rzędy wielkości, ale w skali mikro jest to w pewnym sensie w temacie tej zagadki. Natomiast zjawisko Sagnaca to dla mnie nowa sprawa. Rozwiązań tej zagadki może być bardzo wiele, ale spadek częstotliwości w KSE w tym okresie (który faktycznie wystąpił) jest zgodnie z zasadą...
Z nierdzewki, nie zardzewieje 😄 Zapewne autor wątku zamknie tym samym obwód pętli.
czy to może być powiązane z tym że jest to ESP32D0WDQ6 a nie ESP32WROOM ESP32D0WDQ6 to nazwa samego MCU (bez pamięci Flash). ESP32-WROOM to nazwa SoC, który zawiera ESP32D0WDQ6 z pamięcią SPI flash. Skoro pętlę void-loop mamy wolną, to może dałoby się umieścić tam rodzaj prostego terminalu który odbierałby i wyświetlał tekst z wbudowanego konwertera...
W wątku uruchamiasz program, robisz WaitFor..., po odebraniu wiesz, że proces się zakończył, możesz poinformować wątek główny (np. wiadomością). To, że wątek będzie zawieszony w ogóle nie jest istotne. Jak koniecznie chcesz jego responsywność (np. możliwość zamknięcia przed zakończeniem procesu) to dajesz krótki timeout i pętla.
Witam serdecznie. Chcę odświeżyć wątek cen i zadać pytanie. Jakie są ceny w chwili obecnej na pomiar elektryczny (pętla zwarcia, izolacja, instalacji odgromowej itp)i pomiar sieci strukturalnej? Szukałem w necie lecz znalazłem stosowane stare cenniki na te czynności.
Bardzo dawno Delphi nie używałem, ale mam pewne podejrzenie. Odczyt pewnie działa, ale że nie zrobiłeś czytania w osobnym wątku, to blokujesz cały program w tej pętli i nie ma on kiedy narysować sobie okienka. Jeśli nie umiesz zrobić wątków i ich prawidłowo synchronizować, to dodaj po prostu Application.ProcessMessages; po ustawieniu etykiety, chyba...
Nie ma, trzeba sobie wybrać jakiś sygnał. Przy spawnowaniu wątku nie ma takiego problemu, wtedy mq_notify sam go odpala jak jest nowa wiadomość. Nie wiem czemu się tak przed tym wzbraniasz. Normalnie robi się to tak, że masz osobny wątek do odbierania i albo w tym samym wątku przetwarzasz, albo przetwarzasz asynchronicznie w puli wątków bez kontroli...
Zwróć uwagę ze twój system zachowuje się inaczej gdy grzałka jest włączona i inaczej gdy jest wyłączona (bo histereza). Takie systemy można oczywiście programować używając rożnych technik. Jedną z możliwych jest maszyna stanów. Taka najprostsza: [syntax=c] #define TEMPERATURA_ZALACZENIA_GRZALKI 600 #define TEMPERATURA_WYLACZENIA_GRZALKI 700 enum typedef...
Jedną z zasadniczych różnic pomiędzy C a C++ jest taka, że w C++ używa się referencji zamiast wskaźników, a wskaźników tylko tam, gdzie jest to niezbędnie konieczne. W kontekście tego wątku bym bardziej myślał o smart pointerze (nie do końca tu ulepszy kod, choć trochę), albo "szkolnej" klasie Tablica zawierającej i wskaźnik, i długość, i co konieczne...
Wystarczy, że nie będzie środkowego parametru lub parametr ten będzie różny od zera i już będzie pętla nieskończona Można to wywnioskować z mojej wypowiedzi. No to jak juz tak dopełniałeś to czemu nie wspomniałeś o operatorze przecinkowym który można stosować w pierwszym i trzecim parametrze? Moim celem nie było opisywania w pełni rzeczonej pętli,...
1) spoko, szkoda że nie działa 2) no akurat to najważniejsza rzecz, gdy funkcja od metody różni się trochę. metoda jako pierwszy argument dostaje wskaźnik na obiekt this to niejawny argument, nie widać go. Nie da się stworzyć metody bez argumentów. Każda funkcja która jako pierwszy argument ma wskaźnik na obiekt może być nazywana metodą. dopisanie static...
Funkcja nie blokująca wygląda tak: [syntax=c] void fun(void) { for (;;;) { rozkaz 1 rozkaz 2 czekaj na spelnienie warunku 1 rozkaz 3 rozkaz 4 czekaj na spelnienie warunku 2 } } [/syntax] Rozwiązanie eleganckie jak wcześniej pisałem jest na systemie z wywłaszczanie zadań i koordynatorem zadań, przełączaniem stosu etc... Na PC-ta macie wątki. Wątek czeka...
Akurat ten kod co napisałeś jest bardzo prosty do analizy jest nieskończona pętla która za każdym razem tworzy 4 obiekty wypisuje coś z nich i tyle.
To może z innej beczki. Jak w kodzie można zrobić, żeby wątek obliczał max dla każdej kolumny tablicy (jeżeli mamy do dyspozycji tablicę dwuwymiarową), a potem z obliczonych maxów obliczyć główny max? Pętla po kolumnach, w niej pętla po wierszach i liczysz zapisując wynik do tablicy jednowymiarowej, albo przeznaczając osobny wiersz.
Wrych - system dokonuje przerysowania dopiero w momencie, gdy aplikacja jest w stanie obsłużyć wiadomość WM_PAINT. W trakcie trwania pętli wiadomość się tylko kolejkuje, ale brak jest wolnych zasobów w gównym wątku aplikacji, aby dokonać przerysowania. Stąd albo konieczne jest wymuszenie przerysowania, albo ewentualnie w petli przetworzenie kolejki...
Tomaszu, jako że masz ponad 300 postów, zakładam, że dasz sobie radę z tym poniżej. Podam 2 sposoby z wielu. 1. lista okien wszystkich wątków danego procesu: a) CreateToolhelp32Snapshot z flagą TH32CS_SNAPTHREAD b) w pętli Thread32First ... Thread32Next dostajesz identyfikatory wątków, które otwierasz funkcją OpenThread c) dla każdego wątku odpalasz...
Bo ustawienie flagi musi następować z innego wątku. Zamiast putej pętli lepiej użyj Application.ProcessMessages.
Esp32 ma dwa rdzenie i na tym sprzęcie można zapuścić dwie pętle for w tym samym czasie. Przykład w linku. https://randomnerdtutorials.com/esp32-du... Wielowątkowość nie jest dla początkujących i w wielu przypadkach lepiej rozbić problem na mniejsze podproblemy i oprogramować je na jednym wątku.
Propozycja: dodajesz nową nową zmienną bool, ustawiasz ją przy starcie pętli rysowania. Pętla sprawdza czy zmienna == true, kończy swe działanie w sposób "naturalny" lub gdy zmienna jest wyzerowana przez funkcję obsługi kliknięcia przycisku. Aby zbytnio nie spowalniać aplikacji (pewnie i tak nie byłoby to zauważalne) zastosuj metodę rozwinięcia pętli...
Moja aplikacja jako główne zadanie ma odbierać i nadawać dane przez COM-a. Oprócz tego wykonuje też często inne zadania. W związku z tym, że chce ustrzec się przed błędami przesyłu . Postanowiłem podzielić program na 2 części , gdzie wątek ma obsługiwać tylko procedury związane z COMem , a reszta jest na formie (umownie niech to będzie na razie pętla...
Witam, pracuję nad programem, który korzystając z mechanizmu wątków uruchamia wątek wyświetlający oraz wątek synchronizacyjny. Po wpisaniu nazwy pliku wątek sychro() ustawia zmienną warunkową cond_new_file i wątek synchronizacyjny powinien zezwolić wątkowi display na pracę. Potem całość powinna się zablokować, oczekiwać na nowy obrazek i powtarzać całą...
Jeżeli oba wątki po zakończeniu obliczeń kończą działanie, to uchwyt do nich zmienia stan na 'signalled', co możesz użyć w funkcji WaitForMultipleObjects z bWaitAll=TRUE. Oczywiście nie znam Twoich założeń co do tego jak wszystko razem ma działać, ale to jest jeden z przykładów, gdzie całą pracę z góry dzieli się na dwie niezależne połowy obliczane...
viper_lasser Przypadkiem nie próbujesz zsynchronizować dwa urządzenia? Myślałem że timer jest wystarczający. Może zrób to w wątku ? Robisz pętle sprawdzającą czy mineła sekunda, porównując czas z zegara systemowego (masz możliwość czytywania zegara z dokładnością do us)... While(true) { while(t<1s) t=pobierz_czas(); wyślij(); odbierz(); }
Nie wiadomo, czy biblioteka stdio na Twoim, docelowym systemie została wybudowana jako thread-safe. A wołasz printf-a jednocześnie z kilku wątków. Poza tym: 1. pthread_mutex_unlock() w watek() powinien być pod if-em. 2. Co ma robić pętla while w main() to ja zupełnie nie rozumiem, zwłaszcza, że p jest na początku niezainicjalizowane. 3. Usunięcie mutex-a...
Spora szansa, że problemem są priorytety przerwań. We FreeRTOS (w sumie w większości RTOSów) przerwanie które używa funkcji systemu musi mieć priorytet niższy lub równy wartości którą sobie skonfigurowałeś jako progowa w pliku FreeRTOSConfig.h. Ponieważ zwykle w tym pliku jest to skonfigurowane tak głupio, że nie wiadomo nigdy o co chodzi, na szybko...
Witam. Dziękuję za pomoc. Po testach okazuje się, że jest więcej problemów. Pętla nie działa jak trzeba. Wprowadza zniekształcenia sygnału podstawowego. Wina może leżeć w złym dobraniu elementów lamp oraz głownym problemie ze wzmacnianiem sygnału podstawowego przez układ reverbu. Muszę to wszystko wrzucić na płytkę stykową, podłączyć generator i wyregulować...
Witam. W swoim programie używam wątków do obliczeń na dość dużych tablicach. Obliczenia funkcjonują świetnie, wszystkiego nauczyłem się dzięki temu postowi: http://www.elektroda.pl/rtvforum/viewtop... - a program w postaci raportów w plikach tekstowych oddaje dokładnie te wyniki, których potrzebowałem. W zasadzie z pracy wątków jestem...
No teraz dobrze, ale czy to Ci w ogóle potrzebne? Zerujesz zmienną prze wejściem w pętle ... A wracając o głównego wątku, jeśli masz włączone przerwanie to jego czas dodaje się do tych 1780us, być może wiele razy na bajt (bo częstotliwości oscylatora nie podałeś) i sprawdzasz PD2 w niewłaściwym czasie ... Albert
Witam, Niestety w ANSI C nie ma przenośnej metody na nieblokujący odczyt ze stdin. Masz kilka wyjść, w zależności od systemu: 1) wykonać blokujący odczyt fgetc(stdin) i przerwać go sygnałem, np. setsignal() i alarm(), 2) wykonywać nieblokujący odczyt, np. fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) | O_NONBLOCK); read(fd, ...); 3) wykonywać select() lub poll()...
Nie wczytywałem się w wątek, ale patrząc na schemat zasilacza w powyższym poście, układy LM317 czy LT1085 wymagają nieco innej aplikacji, i rezystorów regulujących dla nogi Vadj. Bo w takiej aplikacji na wyjściu da bodajże 1,25V a nie 16V.
Witam, ja bym to rozwiązał w nieco inny sposób, mianowicie: stworzył bym wątek który by wysyłał dane na com, po wysłaniu w pętli bezczynności oczekiwał na wywołanie zdarzenia OnRxChar przekazywał bym je do wątku a w nim odpowiednio na nie reagował, czyli zapis/przetworzenie/wyświetlenie (w memo) odebranych danych i wysłanie kolejnej paczki danych na...
Program się wiesza bo jest zbyt zajęty pętlą repeat-until. Jeżeli by to miało być tylko opóźnienie 100ms, to wystarczy sleep(100). Jeżeli konieczna jest pętla repeat-until, to w jej wnętrzu proponuję dodanie jeszcze np sleep(10) - aby system mógł wykonać inne operacje np. procedurę od Timera. Niestety nawet przy bardzo dużych parametrach dla Sleep...
Dziękuję za wszelkie odpowiedzi. Moja aplikacja to CLR. Problem leżał w kodzie. Tzn główny wątek programu odczytywał dane z pliku w pętli. W przypadku, gdy plik był niedostępny ( zajęty przez inny program ) następowała próba kolejnego odczytu i tak, aż do uzyskania dostępu do pliku. Pętla "while" była wykonywana bez żadnego opóźnienia, co powodowało...
Czy do takiego systemu jest przygotowane jakieś "api", że sterowniki należy pisać w "jakichś" sztywnych ramach, czy ot po prostu można na danej platformie, skopiować "swoje" z bare metal i odwoływać się do nich ot tak po prostu. Generalnie odpowiedzią będzie wyjątkowo satysfakcjonujące dla ciebie "i tak i nie" (; Zasadniczo nic nie stoi na przeszkodzie,...
A tak powiedz mi jak taką baterię chcesz zamontować do tego urządzenia? Jest dostępny adapter CR2032->14250 i do kompletu większa obudowa. Ma średnicę 40mm i taki otwór trzeba wywiercić w podłożu. Powracając do głównego wątku... Autor pytania nie podał do czego potrzebne jest to wykrywanie samochodów a to utrudnia poszukiwanie optymalnego rozwiązania.
Miałem napisać o tym, że przecież wzmacniacz operacyjny jest źródłem napięciowym, że ma bardzo małą rezystancję wyjściową itd. Nie. Wzmacniacz ze sprzężeniem podłączonym wprost do wyjścia ma małą impedancję wyjściową (<<1R) dzięki sprzężeniu, oczywiście działa to kiepsko tam gdzie sprzężenie działa kiepsko - dla szybkich impulsów/wysokich częstotliwości....
Rozbij te "wątki" z pętli głównej na procedury To jest proste :) Dokładasz do każdej procedury po liczniku czasu jak cLED0_Delay dla LED_Line(). Licznik czasu? Już się pogubiłem, czytam o przerwaniach właśnie, jutro będę coś klepał. P.S. F_CPU radzę używać w Makefile lub w ustawieniach IDE. Hmm, czemu?
No ale po co ci pętla PLL? skoro do zwykłego ATtiny26 można spokojnie podłączyć kwarc 16MHz i będzie ładnie chulać. Taki miałem pod ręką. A może tak rozwiniesz ten wątek o precyzyjności oscylatora wewnętrznego i zewnętrznego? A tak poza tym przypadkowo trafiłem na Twój programik (kalkulator avr). Masz może taki pod pony proga?
To co "pożera procesor" z programów DOSowych w Pascalu to procedura DELAY i inne pętle opóźniające. Sprawdź czy w tym programie są tego typu procedury lub pętle i trzeba je usunąć lub zastąpić windowsowymi metodami oczekiwania. Jeżeli chcesz mieć "żyjące" okienko i coś co wykonuje się długo, to możesz: 1. rozbić go na mniejsze elementy i uruchamiać...
bo ułożyl byś sobie pętlę indukcyjna. I albo reagowało by tylko na twój samochód (RFID np) albo na każdy. Urządzenie dosłownie na kilku tranzystorach. Albo czujnik PIR z kolimatorem zamiast soczewki Freschnella jak radzi (at)Łukasz-O No faktycznie, pętla rzeczywiście chyba najlepiej wpisuje się w założenia, ale to raczej za późno, chyba że kolega autor...
>dondu Autor tematu w pierwszym poście nic nie pisał o przesyłaniu komend assemblera a jedynie w następnym poście potwierdził sugestię Piotrus_999 która w tym przypadku jest błędna a autor wątku przyjął to za dobra monetę. Piotrus_999 nie wie jak jest skonfigurowany moduł Easy8051 więc pianie o rozkazie MOV P1,P2 nie ma żadnych podstaw merytorycznych....
ciężko zrozumieć o co Ci chodzi z tym algorytmami sterowania diod Led tak aby były "inspiracją do realizacji różnego rodzaju lampek, gadżetów i innych urządzeń" Dokładnie, czy tak ciężko ci po kolei czy w dowolnej wybranej przez ciebie sekwencji zapalać i gasić kolejno kolory aby uzyskać różne efekty ??? Skoro umiesz sterować już każdym z kolorów płynnie...
Dziękuję za odpowiedź. Przed chwilą właśnie "przerzuciłem" tą pętle do wątki i rzeczywiście problem się rozwiązał. Dziękuję i temat zamykam
Kod który podałem jest dla moich potrzeb wystarczający jeśli chodzi o czas wykonywania transakcji do MySQL i wrażliwość na bledy, jeśli macie lepsze rozwiązanie to prosiłbym o przykład, gdyż ja nic lepszego nie jestem w stanie opracować Nigdzie w wątku nie pada czy/jak w naturalny sposób dane się dzielą na paczki, bo to by było dobrym krokiem do podziału...
Cześć! Zacząłem niedawno eksperymenty z Bascomem Powinieneś zamieścić ten wątek w dziale początkujący. Ten zegarek nie może poprawnie działać z powodu braku wyboru\konfiguracji\uruchomienia zarówno timera, jak i przerwania z nim związanego. Zgadzam się z przedmówca we wszystkich punktach. Poza tym w pętli Do ,,Loop zbędne jest For .. Next, można to...
Przy tej klasie głośników, bez urazy, różnica jakości dźwięku powinna być minimalna, o ile w ogóle wyczuwalna. Absolutnie się zgadzam. (Dzięki za odpowiedź) Upieram się przy połączeniu optycznym (i BT) ze względu na to, że przez miedź w głośnikach pojawiał się upierdliwy szum, kiedy karta grafiki w komputerze generowała obraz na wysokich obrotach (najpewniej...
Cześć, bardzo fajny wątek, bardzo mi pomógł! Miałem kod błędu P20E8 na 2016 C4 grand picasso. Zmylił mnie komunikat ,,Ciśnienie płynu mocznika". Szukałem problemu z pompą, podczas gdy w rzeczywistości był to problem z nagrzewaniem się jednego z wężyków. Ten między zbiornikiem a wtryskiwaczem. Izolacja na złączu przy zbiorniku pękła, a woda erodowała...
definiujesz sobie na początku: TimerControlBlock Tick; wewnątrz pętli głównej wątku używasz: AvrXDelay(&Tick, czas_w_ms); i działa.
:arrow: shaevtchac1 Jasssne, bardzo dobre to, co napisałeś o tym nabijaniu punktów. Właśnie się zastanawiam, czy zgłosić Twój post adminom. :wink: Umiesz czytać ze zrozumieniem? Zmieniłem na fora, żeby powtarzał pętlę tylko 5 razy, ale gdy się nic nie robi, to mimo to nic się nie dzieje - program nadal czeka na wciśnięcie przycisku i nic nie robi. Za...
zamykać wątek wątek sterownik garmin wątek
zerwana plomba instrukcja rosyjski oscyloskop volvo silnika
babcia komputer sterownik movera
Demontaż tapicerki drzwi Ford Focus Combi 2002 Quad KXD nie odpala po myciu - przyczyny i rozwiązania