Najpierw scanf() ale do łańcucha znaków (tablica char), a potem na tym łańcuchu porównanie z "n" i jeżeli się zgadza, to wyjście, a jeżeli nie, to można użyć konwersji z łańcucha na liczbę. Na przykład za pomocą atoi() z stdlib.h , z tym że tego nie ma chyba w ANSI C, ale jest w ISO. Można też od biedy zrobić sscanf() na tym łańcuchu, ale to mniej wydajne.
Pętlę for musisz na diagramie rozpisać na elementy składowe, czyli inicjalizację zmiennej pętli (to masz), następnie sprawdzanie warunku (zakończenia) pętli, instrukcje wewnątrz pętli i na końcu inkrementacja zmiennej pętli i powrót do sprawdzania warunku.
Nie wiem jak to działa gdy kasujesz TI w przerwaniu. To już poziom assemblera czy wcześniej sprawdzasz warunek pętli while(TI==0) {}; czy też w obsłudze przerwania jest kasowana flaga TI. Włącz debugger w keilu ustaw breakpoint w przerwaniu i zobacz jak program działa. Sądze że skasowanie linii "if (TI) { TI=0; }" rozwiąże problem :) Korzystanie z funkcji...
Należy raczej przerzucić sprawdzanie warunku na koniec pętli, dopiero tam wiemy czy trzeba liczyć dalej. Sztuczne wartości czasami są potrzebne, ale chyba tutaj nie.
Powołana jest zmienna a i na początku ma wartość 0. Następnie w pętli for zmienna ta jest inkrementowana przy każdym obiegu pętli o 1, jeśli jest mniejsza od zmiennej kolumna. Zmienna kolumna przybiera wartości 0-20 w zależności, jaki jest wynik dzielenia wartosc_adc / 51 Program wyświetlający pasek działa i wszystko jest ok, poza tym, że nie do końca...
Co 3.88us wywołujesz przerwanie od przepełnienia timera. A przetwarzanie ADC w pętli while trwa 0.12ms- czyli 120us. Czyli podczas tej pętli pojawi się wielokrotnie przerwanie od timera0. A jeśli się pojawi podczas sprawdzania warunków tej pętli to moga się dziać dziwne rzeczy. Jedna instrukcja przy 8Mhz trwa 0.125us. Czyli obsługa przerwania powinna...
Jako mod: Proszę stosować się do [url=https://www.elektroda.pl/rtvforum/t... (post poprawiłem). Jako user: Zły warunek. Sprawdzasz "i" - Nr kroku pętli zawsze będzie liczbą, a nie zawartość cells(i, kolumna).
Zrób sobie raczej pętle foreach. Dodaj jakąś zmienna którą wyzerujesz przed pętlą. W pętli będziesz sobie ją inkrementował na końcu. A w pętli sprawdzał warunek parzystości wartości zmiennej. IF (warunek parzystości) { echo ...; } Else { echo...; } Wtedy wiesz kiedy masz parzysty wiersz a kiedy nie. Kolorujesz poprzez na przykłąd CSS tak a nie parzyste...
Czytasz wartość spoza zdeklarowanej tablicy. Może indeks po wykonaniu kroku 24 zwiększasz na 25, a warunek sprawdzasz >24? Pokaż obrazek z pętli oraz z bazy DB5.
Witaj. Zależy to od tego, jakiego typu elementy są w tej tablicy i na jakich danych pracujesz. Jeśli pracujesz tylko na liczbach dodatnich to możesz dopisać warunek przy sprawdzaniu elementów w pętli, że jeśli odczytana wartość jest mniejsza niż zero, to przechodzisz do kolejnego elementu. Przy "kasowaniu" elementu z tablicy ustawiasz mu wartość na...
Samo memcpy też nie musi być najszybsze, jeśli kopiuje bajt po bajcie. Lepiej byłoby wyrównać tekst do 4 bajtów, i zrobić cztery odczyty i cztery zapisy słów 32bitowych, czas potrzebny na całą operację zmaleje kilkukrotnie (nie ma pracy na bajcie, nie ma skoku, nie ma sprawdzania warunku pętli...)
Ponieważ sprawdzasz warunek w pętli. I w chwili gdy suma osiągnie dany przedział zaczyna wyświetlać Ci wynik. Sprawdzaj i wyświetlaj warunek poza pętlą jak zsumujesz już wszystkie liczby.
witam. Zrób tak, że w pętli do...loop PRZED cls wpisz sprawdzanie warunku if address=0 then i po tym kolejne sprawdzanie szczegółowo warunku if address=0 and command=8 then :lcd="pilot":end if:end if pozdrawiam.
Nie wiem w czym problem, u mnie działa prawidłowo. No może napisałbym to trochę inaczej, np. brak sprawdzania czy plik do odczytu istnieje, w pętli zmieniłbym warunek z "i<wiersz.size()-1" na "i<wiersz.size()".
Hmm... No to nie jest tak prosto. Po pierwsze, gdy Winavr generuje listing, to najczęściej nie jest tak, że pokazana linijka kodu w C dotyczy dokładnie kodu w asemblerze poniżej. Czasami przełożenie nie jest jednoznaczne (np. z uwagi na optymalizacje), a czasami sobie, chyba, po prostu nie radzi. Po drugie, w main() kompilator rozwinął (inline) wywołania...
Witam, mam pytanie do doświadczonych programistów, czy dobrą praktyką jest umieszczanie pewnych funkcji bezpośrednio w pętli głównej? Z tego co mi wiadomo to należy unikać takich sytuacji, gdyż niepotrzebnie uC ciągle wykonuje coś co zdarza się raz na jakiś czas. Takie zastrzeżenie ma wielki sens w systemach wielozadaniowych, gdzie wolne moce przerobowe...
Jeśli już chcesz sprawdzać parzystość liczby, to musisz to po prostu zrobić w pętli, której warunkiem wyjścia będzie nieparzysta liczba. Ty sprawdzasz raz i losujesz drugi raz i na tym koniec. A jeśli nie, to można po prostu zastosować ogólny wzór na liczbę nieparzystą jako 2x-1 , dostosowując teraz do tego tylko zakres losowania (zmniejszony i połowę...
Witam. Nie sprawdzałem tego, ale proponowałbym coś takiego: W pętli głównej programu Main: Do If K1 = 0 Then Call Generacja End If ....... Loop End W podprogramie Sub Generacja If K1 = 0 Then Set ...jakis port Waitms 50 Reset ... jakis port End If Do If K1 = 0 Then Loop End If If K1 = 1 Then Set ... jakis port Waitms 50 Reset ... jakis port Exit...
Witam. Mam pytanie jak zrobić, żeby program sprawdzał dwa warunki i gdy wykona się jakikolwiek z nich, przerywał działanie? Piszę coś takiego: bl=0 Adres_xr_odczyt = &000A While Adres_xr_odczyt = &H008C Or Bl = 1 i najprawdopodobniej mam coś z sumą logiczną - OR-em, albo z pętlą while? Wydaje mi się, że z while. Chcę zrobić, żeby sprawdzał pamięć od...
Nie wiem czy będziesz mógł ustawić Timeout bo jest od wersji 2076. Najwyżej zakomentuj. Reszta powinna działać. Poczytaj o "Config Serialin" i "Ischarwaiting" Tak dokładniej to Input czeka na Enter albo na to co ustawimy żeby czekał (Config Input) Jak Enter nie nadchodzi z powodu jakiegoś błędu to przydaje się Timeout. Najczesciej odbieram dane po jednym...
I tak ma być zgodnie z twoim kodem: analizujmy - wchodzisz pierwszy raz do pętli while z wartością page_counter = 0, sprawdzasz warunek mniejszości, wewnątrz pętli przesuwasz to w prawo 8 razy jest 0, na końcu inkrementacja, jest 1. Wchodzisz drugi raz, mniejszość OK, przesuwasz w prawo 8 razy jest 0 itd.!!!!!!!!! Nie ma co dalej ciągnąć, pętla jest...
A czego oczekujesz po tym kodzie ? Masz pętlę, która "obraca się" dopóki nie natrafi na cyfrę 5 w komórce o koordynatach l:l ... To się nigdy nie stanie :) Przy pierwszym sprawdzeniu l=0 , koordynaty to 0:0 i wartość jest nieokreślona... A przy każdym kolejnym sprawdzaniu warunku zakończenia pętli, l=20 , czyli sprawdzasz komórkę 20:20 , która zawiera...
1. Daj sprawdzanie szyfru w pętli bo zajeździsz BASCOM'a tak długim warunkiem ;-) [syntax=BASCOM] Valid = 1 For Index = 1 to 8 If Kod(Index) <> Szyfr(Index) then Valid = 0 Exit For End If Next Index [/syntax] 2. Zamiast Goto Alarmowanie powinno być Gosub Alarmowanie ponieważ Alarm = 0 nigdy nie zostanie wykonane.
Program zaczyna działanie. Jeśli warunek pierwszej pętli jest SPEŁNIONY pętla wykonuje się. W momencie kiedy przestaje być spełniony (wyrażenie == false) przechodzi dalej i sprawdzany jest warunek kolejnej pętli. Tu zabawa zaczyna się od nowa. Tak jak napisał poprzednik, program ten wykonuje się jednowątkowo.
Jeżeli wpiszę continue w blok 3 to po spełnieniu warunku "jakisWarunek" program przejdzie do bloku 4 Niezupełnie. Po wpisaniu continue program - jak sama nazwa wskazuje - będzie kontynuował pętlę do..while w kolejnej iteracji. Do bloku 4 przejdzie po przerwaniu pętli poleceniem break; A w ogóle to w tym konkretnym przykładzie można by zrezygnować z...
Mam takie pewnie głupie pytanie: Mam na formatce np. button1, button2 .. button30. Czy można jakoś szybko zmienić np. text we wszystkich automatycznie? Chyba pętla for i button Czy przyciski button1, button2, ... button30 są jedynymi elementami klasy Button zawartymi na formatce? Jeżeli tak, można wykorzystać pętlę foreach (var c in this.Controls)...
Sprawdzę to w wolnej chwili :) ubiegłeś mnie, pisałem właśnie identyczną rzecz, nawet kolejność argumentów do funkcji jest taka sama :) Jednak mam pewne obiekcje co do sposobu wywoływania procesów. Można zrobić tak: [syntax=c] while(1) { if(warunek) task(); } void task(void) { // proces }[/syntax] albo można i tak: [syntax=c] while(1) { task(); } void...
A nie możesz po prostu w pętli sprawdzać podany warunek dla kolejnych liczb naturalnych (n=1,2,3...). Jeśli warunek będzie prawdziwy opuszczasz pętlę i odczytujesz wartość n. Pozdro.
1 Nadal źle napisane Load Timer. 2 Brak inkrementacji zmiennej Sekunda. 3 Sprawdzanie warunków powinno być w pętli lub (gorsze rozwiązanie) w przerwaniu.
szczerze, to nie bardzo rozumiem, co chcesz osiągnąć taką pętlą... Przecież w pętli masz wyłącznie wczytywać znak, a warunkiem wykonania będzie tylko nie dopuszczenie "wcześniejszej" litery z alfabetu. Również w takiej pętli sprawdzasz warunek (wystarczy tylko jeden; dwa, jeśli chcesz nie dopuszczać do zliczania innych znaków niż litery) dla rozpoznania,...
Na początku pętli [syntax=vbscript]Do While Len(ws_src.Range("E" & i)) > 0[/syntax]jest sprawdzany warunek czy długość zapisu w kolumnie E jest > 0. Eliminuje to przypadki pustych komórek i pustych tekstów. Gdybyś jeszcze chciał sprawdzać wartości zerowe to trzeba dodać nowy warunek pod spodem: [syntax=vbscript]If ws_src.Range("E" & i) = 0 Then Exit...
Nie, co niby w nim nieprawidłowego* ? Chodzi o to, że nie można zakładać, że kompilator wygeneruje identyczny schemat pętli (i warunku wyjścia, np. to nieszczęsne breq), po zmianie programu i dodaniu różnych rzeczy wewnątrz pętli. Optymalizacja powoduje, że wygenrowany kod jest funkcjonalnie równoważny, ale nie koniecznie wykonuje dokładnie takie operacje...
Cóż, teraz widzę że nie zrozumiałem do końca. Zostaw break jak był, teraz doczytałem że nie stosowanie break to mit, którego zresztą zostałem nauczony w szkole... A wracając do twojego pytania, zapoznaj się z debugerem to zrozumiesz dokładnie jak to działa. Break tak czy siak powinien przerwać pętlę for w obrębie której jest zagnieżdżony, a dopiero...
To nie ma związku z formułami. W wierszu oznaczonym poprzednio komentarzem 4) zamiast lw było wpisane 12, więc pętla w ogóle się nie wykonywała (od 13 do 12 nie ma żadnej wartości). Poza tym ponieważ lw szuka ostatniego zajętego wiersza w kolumnie A, a w tym ostatnim wierszu była teraz formuła zwracająca pusty tekst, więc dodałem jeszcze w pętli warunek...
Chodzi o to ze pętla while jest bardzo rozbudowana (znajdują się tam też inne pętle), nie mogę sprawdzać warunku w pętli bo będzie to bardzo czasochłonne i będzie zajmowało za dużo kodu. Problem polega na tym, aby przerwać tą pętle natychmiast po naciśnięciu klawisza czyli w przerwaniu powinno być coś takiego: SIGNAL(SIG_INTERRUPT0) { //tu powinien...
Dzięki za wyczerpującą odpowiedź. Co do stosowania "break" - u mnie w programie akurat sa 2 pętle for zagnieżdżone, sprawdzanie warunku występuje w wewnętrznej pętli. Nie wyobrażam sobie szczerze powiedziawszy łatwego wyjścia na zawnątrz przy pomocy "break" i moim zganiem skok goto jest jak najbardziej na miejścu... Mimo powrzechnego przekonania panującego...
Witam. Mam cześć programu, która ma wykonywać się co sekundę tzn po zmianie stanu sekund na wyświetlaczu LCD z zegara PCF... Jak to zrobic...?. Czy można zastosować pętlę Do...Loop w pętli Do... Loop, jeżeli tak to jak to zrobić, bo mi się to nie udaje... Wymyśliłem to tak ,że w pętli głównej programu umieszczam dodatkową pętlę, która powinna sprawdzać...
Pętla while (ang. podczas gdy) – wykonuje instrukcję tak długo, dopóki jej warunek jest spełniony (ma wartość różną od zera). Instrukcja sprawdza warunek przed wykonaniem ciała pętli. Pętla while może wykonywać się nieskończoną ilość razy, gdy wyrażenie nigdy nie przyjmie wartości 0, może także nie wykonać się nigdy, gdy wartość przed pierwszym...
no jeżeli wieżyczka ma obrócić sie o 360stopni to musi być pętla w której po tych 360 stopniach ona się zatrzyma. Pętla ta wykonywana jest więc pd warunkiem prawdziwego warunku az do 359 stopnia. przy pełnym obrocie czyli gdy będzie 360 st warunek w pętli musi być falszywy i ona przestanie wykonywać i pokarze pomiary. Jednak gdy być chciał tak jak piszesz...
A tutaj masz podstawy pascala w pigułce: http://pl.wikipedia.org/wiki/Pascal_%28j... Robisz pętlę "for" 1-100 i sprawdzasz dla każdej liczby warunek podany przez kolegę powyżej. Jeśli jest prawdziwy dla wszystkich trzech (7,8 i 9) to wyświetlasz liczbę jako spełniającą warunek.
No to tak: Jakaś funkcja: ...kod.... //chce, aby wystąpiło przerwanie Warunek ...kod... ....kod... ....kod... //chce, aby wystapiło przerwanie Warunek .....kod... Funkcja main //pętla główna I napisałeś, że warunek ma być sprawdzany w pętli głównej.
(at)dondu Po to aby zasugerować, że ktoś naprawdę miał intencję napisania pustej pętli (tzn samo sprawdzanie warunku). Jest to nadmiarowe ale w niczym nie przeszkadza.
Dodano po 5 A i taki mały błąd znalazłem, w pętli for inkremantacja następuje na samym końcu, czyli sprawdzamy warunek wykonujemy kod z nawiasów, inkrementujemy, sprawdzmy warunek itd... Ty inkrementujesz zaraz na początku i program trochę źle działa przesuń "++i" i "++ii" na koniec. Dodano po 5
W podanym kodzie, przy odbiciu zmienna yspeed przyjmuje wielkość ok. 30. To jest ta różnica. Ponieważ sprawdzasz warunek na początku pętli lina nigdy nie przekroczy dolnej granicy 479-~30 = 449. Powoduje to także, że przy szczycie wykresu, zmienna yspeed zmienia wartość z ujemnej na dodatnią, juz przy y=14 a nie przy y=0. Stąd bierze się górny "margines"....
no właśnie umieszczałem w pętli głównej warunek sprawdzania czy przycisk jest wciśnięty ale... hmmm program leci dalej i nawet nie czeka na guzik :) cóż pozostaje metoda próbi błędów z akcentem na błędów.
W pętli brak podnoszenia wartości Time, w do while wpisz Time+=1, timer nie podniesie wartości tej zmiennej gdy jest pętla, raczej zrezygnował bym wogole z tej pętli i w metodzie timer_tick, sprawdzał warunkiem czy Time <50, If Time <50 then Zrób coś Else Nie rób nic End if
W tym, że kiedy klawisze są zwolnione, read_key() zwraca 0, a ty próbujesz wisieć w pętlach, których warunkiem jest wciśnięcie klawisza i sprawdzać w nich, czy nie wciśnięto innego klawisza, niż ten, którego naciśnięcie jest warunkiem powtarzania pętli.
do i ad chciałabym żeby były portami danych wchodzącymi do fpga. powinno być: case do(i)(19 downto 11)= ad(i)(24 downto 16) ad jest dwuwymiarową tablicą powinno być 256 wartości czyli pętla for do 255. Cała reszta tak jak mówisz. dalej nie rozumiem, albo ad jest portem danych, albo tablica, z ktora porownujesz dane z portu do ; chyba ze jest to port...
Z przepisywaniem miałem na myśli przypadek, że np.: gdy sekwencja jest w 11, nie sprawdzasz pozostałych czasów, a je nadpisujesz. Zrobiłbym równoległe sprawdzanie wszystkich warunków przy użyciu pętli. Wtedy przepisania by zostały tak, jak masz (czas aktualny, pętla, zapamiętanie czasu). tablice: time_dev_act[] time_dev_p[] dev_start_detect[] pętla:...
Jaki będzie wynik działania poniższego programu, napisanego w języku C: #include <stdio.h> int main() { int i = 0; int j = 0; while (j < 2) { if (i < 2) { ++i; j = 0; } else { i = 0; ++j; } } printf("Hurra"); } Aby zrozumieć, jaki będzie wynik działania tego...
Spojrzałem w ten kod i niestety jest tam o wiele więcej problemów. Typowy kod początkującego, ale OK - każdy kiedyś zaczynał i pisał takie potworki ;-) Co można naprawić? Już Ci to mówili w innym wątku: przede wszystkim wywalić czasochłonne operacje z przerwania. W ISR ustawiasz tylko flagę, a w pętli głównej sprawdzasz jej stan i, jeśli zachodzi warunek,...
W obsłudze przerwania umieścić należy kilka warunków, które będą sprawdzały wartość zmiennej i za pomocą polecenia Goto XXX przeskakiwały do kolejnych pętli. Tak NIE WOLNO ROBIĆ, powoduje to przepełnienie stosu (bo nigdy nie wychodzi z przerwania). Poprawnie można to zrobić tak: Odpowiednie pętle sprawdzają flagi (zmienne) w przypadku udpowiedniego...
wtedy z warunku pętli wyrzucasz warunek mówiący o podzielności, tylko przekładasz go do jej wnętrza, gdzie warunkowo wyświelisz cyfrę (nie)podzielną.
Nie ma tu wielkiej filozofii. Ja coś podobnego robiłem kiedyś w ten sposób: fscanf(pFile, "%d,%d", &num1, &num2); Robisz to w jakieś pętli gdzie sprawdzasz warunek: if (feof(pFile)) return; Myślę, że dorobienie głupotoodporności i napisanie tego samemu już nie zajmie Ci dużo czasu.
Zauważ że warunek w pętli do while jest sprawdzany na końcu, czyli po przejściu pętli. Jeżeli zmienna znak była modyfikowana kilka razy to w warunku będzie wartość po ostatniej modyfikacji. Tuż przy końcu pliku dane.txt był u ciebie znak '\n'. Na końcu pętli program wczytywał ten znak, sprawdzał warunek: while(znak!='\n' && znak!=EOF); znak...
Sposobów może być kilka, tylko nie dajesz czytelnego przykładu. Można instrukcję Next poprzedzić etykietą i wykonać skok do tej etykiety, np. [syntax=vbscript]For i = 1 To 10 If warunek1 Then instrukcja1 ElseIf warunek2 Then instrukcja2 Else GoTo etykieta End If instrukcje dodatkowe etykieta: Next i[/syntax] Można instrukcje dodatkowe umieścić w osobnej...
W przerwaniu timera: if (i2c_timer) i2c_timer --; Przed każdą akcją i2c zapisujemy do zmiennej i2c_timer jakąś stałą. W każdej pętli oczekiwania na zakończenie akcji dodajemy w warunku && i2c_timer a po wyjściu z pętli sprawdzamy, czy akcja została wykonana. Jeśli nie - wylecieliśmy na przekroczeniu czasu.
Jak rozumiem, dane masz w arkuszu Wk (aktywnym) i chcesz je przekopiować do arkusza Ww (zestawienie)? Jeśli tak, po lewej stronie musi być odniesienie do arkusza, do którego kopiujesz dane (Ww), a po prawej - arkusza źródłowego (Wk). Dlatego też dziwię się, że piszesz że to zdziałało odwrotnie. Jeden szczegół na który nie zwróciłem uwagi - jeżeli w...
Deklaracja zmiennych na początku programu jest dobrym nawykiem, bez tego zadeklarowana zmienna będzie początkowo przechowywać nieustaloną wartość (śmieć z pamięci), więc zadeklarowanie jest ok. To warunek, który jest ustalony dla pętel while jest błędny. W Twoim kodzie użyty jest operator większości, więc sprawdzamy czy licznik3 (lub licznik2) jest...
Kombinowałem z przykładami, po wyżej, ale nic mi z tego nie wychodziło. Znalazłem coś, co by mnie satysfakcjonowało na początek puki nie opanuję wątków, ale występują dwa problemy: Gdy wywołuję ten kod, po niżej to niby wszystko działa dobrze: [syntax=csharp] int n = 0; do { for (int i = 5; i <= 120; i++) { Console.WriteLine(i); } for (int i = 120;...
witam ! co do szybkości to można jeszcze coś poprawić - dla kilku elementów tablicy nie warto angażować pętli, ponieważ to wymusza sprawdzanie warunku -wartości licznika indeksującego tę tablicę. Zamiast tego oczywistym jest dla każdego elementu tablicy pisać osobny kod :-) (chyba że tablica jest dłuuuuuuugggaaa).
Spróbuj jeszcze raz wkleić kod, który podałem(poprawiłem go w jednym miejscu) -> sprawdzanie warunku liczenia sumy było poza pętlą.
Rob wcięcia w kodzie, bo się tego nie da czytać. W temacie piszesz, że ma wyświetlać liczby pierwsze, a w poście już że całkowite. Może trochę sprecyzuj, co chcesz osiągnąć? W pętli while(warunek=false) robisz readln(liczba), sprawdzasz czy reszta z dzielenia przez 1 jest równa 0. Jeżeli tak to przerywasz pętlę przez warunek:=true.
To jest program, który obsługuje miernik pojemności akumulatora. Do pinu 2 czyli zdefiniowane VINPUT_PIN jest dostarczane napięcie z zewnętrznego źrodła np akumulatora albo baterii . Moim zdaniem warunki if sprawdzają czy pomiar jest właściwy
Ad. 1 Zrób to w wątku, teraz nie chodzą message przez co żadna akcja (kliknięcie czy coś innego) nie dojdzie. Spróbuj ewentualnie wywoływać ProcessMessages z Application w tej pętli (ale to rozwiązanie nigdy mi się nie podobało :wink: ). Na wątku po prostu robisz Terminate a w wątki sprawdzasz czy Terminated. W przypadku używania ProcessMessages możesz...
Bo zgubiłeś (albo raczej nadpisałeś - wyłącz insert?) znak zapytania. Poza tym pod cin >> n; wstaw sobie fflush(stdin); bo w przeciwnym razie enter, którym zakończysz pobieranie liczby zostanie odczytany przez pierwszego getline. W pętli for zmień warunek z "<" na "<=", wtedy będzie miało to sens :-) Aha. Polecam dodać jakieś wypisywanie...
Generalnie jak załączysz obrazek schematu to każdy może kliknąć miniaturę i ma podgląd w przeglądarce. Kiedy zamieszczasz PDF to trzeba go ściągnąć i otworzyć co zmniejsza szanse na to że komuś będzie się chciało czego jestem żywym przykładem. Gdybym widział schemat to bym o kondensatorach nie pisał - wniosek jest prosty - nie patrzyłem przed odpowiedzią...
Niestety, w przypadku strumieni - mechanizmu znacznie starszego niż wyjątki w języku C++ - mechanizm obsługi wyjątków nie najlepiej działa. Nie będę się rozpisywał o szczegółach, nie byłoby to na temat. Natomiast sprawdzanie poprawności wpisanej wartości jest proste, podaję przykład do wczytania liczby int z dodatkowym warunkiem, by była nieujemna:...
Prawdopodobnie najprostszym sposobem byłoby utworzenie pętli i sprawdzanie co sekundę. Należy dostosować indeksy kanałów, wartości i warunek w poniższym przykładzie. alias ALARM_ON setChannel 10 1 alias ALARM_OFF setChannel 10 0 again: delay_s 1 if $CH4==0||$CH3>50||$CH2<10 then ALARM_ON else ALARM_OFF goto again https://github.com/openshwprojects/OpenB...
Witam serdecznie, zbudowałem sobie układ na Arduino UNO i mam jeden problem. W pętli void loop warunki wykonywane są cały czas w pętli, chyba że źle to rozumiem to mnie poprawcie. Mam kilka warunków które powinien sprawdzać układ, dokładnie to 6. Jeśli zapisze dla pojedynczego to wszystko sprawnie wykonuje. Nie wiem natomiast jak dodać kolejne 5 warunków,...
Faktycznie najlepszym rozwiązaniem jest chyba świetlówka UV. Co do szybkości to można sobie problem nieco skomplikować. Mianowicie można wykonać układ, który będzie adresował pamięć i sprawdzał czy są w niej same FF (albo same zera bo nie pamiętam dobrze co powinno być). Licznik powinien pracować w pętli z warunkiem, że jeśli jakaś wartość jest różna...
Algorytm jest już prawie gotowy bo opisałes co ma być zrobione. Mozesz sobie to narysować w postaci schematu blokowego. Gdyby monitorować 1 pin i sterowac 1 wyjście sprawa wtedy jest prosta i da się to zrobić bez timera dokłądnie realizując zapisany algorytm i "czekająć" określony czas. Gdy się ma juz wiecej wejśc/wyść obsłużyć w ten sposob to jednym...
sprawdzanie warunku umieść w przerwaniu.... niech co jakiś krótki odcinek czasu TimerO wywołuje przerwanie sprawdza warunek i niech albo przeskakuje do nowego zadania albo pozostawia robienie starej pętli:)
Może resetujesz radio zanim wyśle dane i dlatego masz niski pobór prądu i brak danych na wyjściu? Na pewno wysyłasz wszystkie bajty zanim wywołasz ResetRadioCore(); bez opóźnienia? Nie pokazałeś funkcji Transmit(...); i nie potrafię odpowiedzieć czy sprawdzanie warunku if(!transmitting)... wystarcza.
4 piętra to chyba jeszcze nie wieżowiec?? :D Jest wiele możliwości na stworzenie tego programu, ciężko jedną wybrać... Możesz tworzyć kontrolki "dynamicznie", jak pisałaś (do tego bym wykorzystał TableLayoutPanel). Dlaczego uważasz, że to "za duuuużo kodu i obliczeń" ?? Deklarujesz dwuwymiarową tablicę z losowymi liczbami, dwie zagnieżdżone pętle for......
Zadania wydają się banalnie proste. Jak masz gotowe funckje po prostu trzeba będzie sprawdzać tylko inny warunek. W przypadku silni należy zamiast pętli for zrobić while i sprawdzać wynik. function Silnia2(wejscie:integer):integer; var i:integer; begin i:=1; silnia2:=1; while i<wejscie do begin inc(silnia2); i:=i*silnia2; end; if i<>wejscie...
Mógłby to kolega zapisać w C :-) nie bardzo rozumiem jak to zapisać po tej komendzie ONE_WIRE_SendByte(0x44)... Po prostu należy odczytywać 1-bit i sprawdzać czy jest = 1. np. send_byte(0xCC); send_byte(0x44); //_delay_ms(800); while( !(read() ) _delay_ms(10); //... Możesz jeszcze obwarować pętlę...
Musisz czytać plik w pętli aż do momentu, gdy dojdziesz do końca (metoda do sprawdzania tego warunku: ifile.eof).
Co do samego tematu: Szybkość kodu w asemblerze wynika z tego, że pisząc w nim kod wykorzystujemy wszystkie założenia dotyczące projektu - założenia są podstawą optymalizacji, a jeśli ktoś nie wykorzystuje wszystkich założeń, niech pisze w C, mniej się narobi, bo i tak nic nie zoptymalizuje - i tak: - można niektóre warunki uprościć (założenia dotyczące...
Przyciskiem, na sztywno, polem tekstowym wysyłanym. Jeżeli chcesz mieć parę rekordów dla których ma ten warunek być sprawdzany to albo musisz to sprawdzać w pętli albo pojedynczo po wywołaniu tego. Jak to zrobisz to Twój wybór. Ale najpierw coś zrób, a później dalej pytaj. Ode mnie gotowca nie dostaniesz.
Tylko jeżeli na stronie jest kilka różnych elementów z "id=details" To ewidentny błąd - numery ID powinny być niepowtarzalne. W takim wypadku będziesz musiał poradzić sobie na okrętkę: pobierz kolekcję wszystkich elementów typu link na stronie, potem przeleć pętlą po tej kolekcji, i dla każdego elementu zaimplementuj sprawdzanie warunku, który znajdzie...
Nie taka konstrukcja jest jest niepoprawna. Obsługa przerwania musi być zakończona instrukcją Return. Zamiast Goto ustaw flagę i sprawdzaj jej stan w pętli głównej. Jeśli warunek się spełni to wtedy skocz do podprogramu.
Po pierwsze to uporządkuj kod bo jest nieczytelny. Przecież widać że to nie ma szansy działać poprawnie. Zastanów się nad algorytmem. Znak czytasz przed pętlą while a w niej masz trzy warunki w których sprawdzasz wartość znaku. Nie ma przecież szansy żeby ta wartość się zmieniła. Znak powinieneś czytać również wewnątrz pętli while (na końcu). Ostatni...
W przerwaniach masz _delay()- to wielki błąd. A _delay() w pętli- to duzy błąd. Masz Timer i masz go ustawić na przerwanie co 20ms. W tym przerwaniu ustawiasz sobie tyle flag ile trzeba i je zwiększasz. W głównej petli sprawdzasz czy flaga1==1, zerujesz i wykonujesz jakiś warunek. Potem sprawdzasz czy flaga2==5, zerujesz i robisz to co ma być robione...
Średnio chce mi się analizować ten kod, ale jeśli załączasz przerwania w przerwaniu od INT1 po wcześniejszym wyłączeniu przerwania od INT1 - jest poprawnym rozwiązaniem, gdyż nie ma możliwości wejścia do funkcji przerwania od INT1 podczas jej wykonywania niezależnie od okoliczności; tak ponowne zezwolenie na przerwanie od INT1 bez wcześniejszego zablokowania...
Czyli nie ma różnicy, czy dodajesz stałą do wskaźnika, czy do liczby i, ale nie wiem co to ma do rzeczy. Co do ładowania wskaźnika na ostatni element, to przy wejściu do pętli sprawdzasz warunek tabwsk != tabkon, czyli sprowadza się to do instrukcji: mov eax, [tabwsk] mov ebx, [tabkon] cmp eax, ebx a w wersji z i masz tylko np. mov eax, [i] cmp eax,...
Przepraszam Panowie w przykładach pętli w argumentach pętli for jest warunek i<0xFF przepisując kod na forum popełniłem literówkę :P Ale zrobiłem przy okazji taki teścik że wpisałem wartość 0xFF0 do warunku i ku mojemu zaskoczeniu kompilator nie ostrzegł nawet że argument warunku przekracza zakres zmiennej z którą jest porównywany. Sprawdziłem też...
Witam!!! Nie jestem pewien czy dobrze zrozumiałem? Ale coś mi się nie zgadza, bo jeśli w przerwaniu ustawiasz Buzzer na 0b1, a później w pętli głównej sprawdzasz warunek i też ustawiasz Buzzer na 0b1, to nawet jęsli przerwanie zadziała to i tak nie zobaczysz efektu. // External Interrupt 2 service routine interrupt [EXT_INT2] void ext_int2_isr(void)...
odpowiednio zaprojektowane i ułożone ify (zależne od rodzaju wykonywanych operacji i sposobu przemierzania tablicy) z pewnością nie zaszkodzi. Jeśli dobrze zrozumiałem, to trzeba po prostu ułożyć warunek w stylu: if (x-1<0) || (x-2<0) || (x-3<0) || (x-4<0) || (y-1<0) || (y-2<0) || (y-3<0) || (y-4<0) itd dla prawej i dolnej krawędzi......
1. 64k, ale może być zależne od systemu operacyjnego i wersji kompilatora. 2. choćby pętlą na zasadzie licznika ze sprawdzaniem warunków.
Szczerze mówiąc to dziwny masz ten kod. Nie łatwiej jest obsługiwać TWI w przerwaniach od niego? W przerwaniu sprawdzasz warunek, który stan wywołał przerwanie i podejmujesz konkretną akcję, bez czekania w pętli aż coś się wydarzy...
...Może powiedz czego się spodziewasz? Chciałbym uzyskać taki efekt: wskaźnik RSwsk jest sprawdzany warunku pętli while; gdy tylko jego wartość będzie różna od NULL, ma wykonać się blok w pętli. Wskaźnik RSwsk jest zadeklarowany jako: [syntax=c] volatile uint8_t *RSwsk = NULL; [/syntax] Wskaźnik ustawiany jest w przerwaniu: [syntax=c] ISR(USARTD0_RXC_vect)...
Rzeczywiście ta metoda, nie pomoże, okazuje się że właśnie wcale nie ma pewności że bufor odbiorczy jest pusty po użyciu flush. Zastanawiam się czy może sprawdzanie w jakiś sposób RXC w pętli w przerwaniu by nie pomogło.
Ciekawe drugiego nie znałem. Blokowy prosty: pamiętać położenia wszystkich krążków kołki 0,1,2 cel wieża z 0 na 2 parametry j,k,l przełożyć malutki z 0 na 1 j=1,k=2,l=0 w pętli typu repeat (sprawdzanie warunku po wykonaniu instrukcji) j=(j+1) mod 3 k=(k+1) mod 3 l=(l+1) mod 3 po sprawdzeniu co leży na wierzchu kołków l i k wykonać ruch l>k lub k>l (ten...
Rozumiem że chodzi Ci o zamianę pierwszej małej litery jaka wystąpi w ciągu a nie o pierwszy element ciągu tak? Jest kilka opcji jak to zrobić... Można tak jak kolega Dawid_20, sprawdzać po kodzie ascii, wtedy jedziemy w pętli: Duże znaki to kod z przedziału: 65-90 Małe znaki mają przedział: 97-122 Czyli dla pierwszego napotkanego kodu ASCII w ciągu...
Intersect(Target, Columns(...)) zwraca zakres komórek typu Range(), będący wspólną częścią - w przypadku zdarzenia Worksheet_Change - obszaru, który uległ zmianie (Target) oraz wybranej kolumny (Columns(...)). Tym obszarem który uległ zmianie (Target) może być tylko jedna komórka (np. kiedy wpisujesz w nią wartość ręcznie), ale też zakres komórek (np....
Nie za bardzo rozumiem Twój problem. Rozumiem ze jak natęzenie światła spadnie to zaluzje sie otwieraja w odpowiedni sposób. Co to ma do If-a Po co liczyc jakies pochodne. Sprawdzanie warunków if jest w pętli. Czyli ze jezeli natezenie światła znajdzie sie w jakims Twoim zakresie to w odpowiedni sposób otworzy sie żaluzja. Zwróc uwage że te kąty sa...
RCC_APB2PeriphClockCmd(RCC_APB1Perip... zamień na RCC_APB1PeriphClockCmd(RCC_APB1Perip... ENABLE); APB1 i APB2 tą są osobne magistrale. W tym momencie włączałeś jakiś układ na drugiej magistrali choć na dobrej pozycji. Dalej nie patrzyłem. Zerknij jeszcze czy ten Twój procek ma USART3 bo w zależności od rodziny nie wszystkie peryfoeria...
Moze sprobuj z timerem ktory sie sam wylaczy po ilustam wykonaniach Oczywiscie chodzi ci o zastapienie petli eventem OnTimer, tzn przeniesienie ciala z petli do tegoż eventa? Tylko, że wtedy taka "sztuczna pętla" będzie się znacznie wolniej wykonywać niż w for. Może dało by się dodać jakiś warunek w pętli for coś w stylu sprawdzania czy nie naciśnięto...
Witam! Pisząc przykładowe programy na atmegę8 nie moge uporać się z problemem dot. opóźnień. Gdy w pętli sprawdzam warunek "zatrzymuję" działanie programu na np. 1 sekundę, podczas gdy po wrzuceniu kodu do atmegi opóźnienia są wielokrotnie dłuższe. Pisząc program na początku ustawiam częstotliwosc pracy avr'a tą linijką #define F_cpu 1000000L Rownież...
rezystancja pętli separator pętli generator pętli
zmniejszyć moment obrotowy pobieranie zablokowane schemat wycieraczki szyby tylnej
Schemat pralki Ariston ALD 80 EX - gdzie znaleźć? Błąd F04 w pralkach Siemens - przyczyny i rozwiązania