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.
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.
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...
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,...
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)...
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:...
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 pisałem nic na Rs485 ale mam kilka uwag do programu. Zacznij najpierw od poczytania w helpie bascoma, co robi dokładnie instrukcja Inkey() a dowiesz się że odbiera 1 bajt (jeden znak) z bufora. Sprawdzanie więc warunku B = "zaswiec" nie ma najmniejszego sensu. Nie wiem też po co przełączasz tyle razy układ w nadajnik <>odbiornik: ...... Reset...
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.
Witam wszystkich:) OK, wprowadziłem kilka usprawnień w programie odtwarzacza MP3. Oto one: 1. Zmniejszenie trzasku /stuku w słuchawkach po zakończeniu regulacji głośności. Trzask ten był powodowany odświeżeniem zawartości LCD (czyli ponownym wyświetleniem nazwy odtwarzanego pliku i jego podstawowych parametrów) po wyjściu z regulacji głośności. Podczas...
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...
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...
Wypróbowałem: (1) deklarowanie 'ix' z 'volatile', (2) deklarowanie 'ix' jako 'uint32_t', (3) 65536U w warunku, (4) typecast 'ix' w warunku na 'uint32_t', (5) mnożenie przez 0x50001U przy wyliczaniu 'wd' - którekolwiek z 1, 2 i 5 wystarcza, by program działał prawidłowo, choć przepełnienie w 'wd' występuje nadal; z 3 i 4 jest źle (nawet przy użyciu obu...
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...
Jest wykonywana pętla więc jeżeli komórka osiągnie wartość 5 to wychodzi z pętli ponieważ do until (cells(1,1) = 5 ). Tak, ale sprawdzanie warunku obywa się na początku pętli Do Until. Za pierwszym razem komórka będzie miała wartość 1, za drugim: 20 (po wykonaniu całej pętli For...). Sprawdź sobie to w debugerze idąc krok po kroku klawiszem F8.
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ą.
W jakim celu w fun1() wstawiłeś znowu DELAY w postaci pętli oczekującej?: W programie głównym to sprawdzasz i jak dojdzie do 0 to zmieniasz drugą diodę. Zamiast więc wskazanej wyżej pętli while, w pętli głównej dodaj warunek if() sprawdzający: 1. to co napisał atom1477, czyli czy zmienna CZEKAJ doszła do zera i wywołujący funkcję fun1(), gdy tak się...
Wszystko zależy od tego, jak to robisz. Flaga taka powinna być ustawiana tylko przez te zadania (np. działające w przerwaniach), które żądają zmiany wyświetlanych parametrów, ponieważ wiedzą, że takie parametry się zmieniły . Każdorazowe sprawdzanie, czy zachodzi konieczność zmiany wyświetlanych parametrów może być faktycznie czasochłonne i zupełnie...
Sugestia Olo999 jest jak najbardziej poprawna. Tylko jeśli dobrze zrozumiałem to problem wynika z faktu iż na końcu programu ma być pętla rodzaju: while (1) {} Więc sprawdzanie warunku wyjścia z niej nie czyni z niej pętli nieskończonej. Ja bym raczej proponował w obsłudze przerwania nadpisać ten element stosu który przechowuje adres...
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.
Myślę, że kolega krru niezbyt dokładnie to wytłumaczył. Nie ma nic złego w używaniu funkcji eof() strumienia, o ile się wie, gdzie i do czego ją zastosować. Natomiast oryginalny problem polega na tym, że w liniach pliku z danymi jest jeszcze coś więcej, oprócz czterech cyfr: znak końca linii. Ten znak pozostaje w strumieniu w momencie odczytania ostatniej...
1. Po co stosujesz liczby zmiennoprzecinkowe (float), które zżerają zasoby i czas pracy Twojego mikrokontrolera? 2. Wyrzuć static z deklaracji zmiennej rezultat10bit 3. W jakim celu z tak dużą częstotliwością, zmieniasz ustawienia rejestru OCR1A, skoro bazuje on na nowej wartości ADC? Zastosuj jedno z rozwiązań: - albo przenieś to (ustawianie OCR1)...
Wynik ciągle jest zero, bo przypisujesz S=0; S w funkcji F jest zupełnie inną zmienną. W ogóle nie wywołujesz funkcji F; Funkcja F nie zwraca żadnej wartości. Funkcja F nie przyjmuje żadnej wartości. Pętla w funkcji F nigdy się nie kończy(gdybyś wywołał funkcje, to program by się "zawiesił") -> brak break, bądź return Poprawiony kod(na szybko, nie...
Możesz też wypróbować go w C. Tak naprawdę język jest mniej ważny. Chodzi raczej o rozsądne programowanie, czyli w tym przypadku o to, że nie należy korzystać z pętli opóźniających, bo jeśli dojdzie inne zadanie to nie wiadomo co robić, a po drugie obsługa przerwania powinna być krótka. Przy przesiadce uważaj na sprawdzanie warunku równości. W Bascomie...
No dobrze, ale to jakby zmiażdżyło mój program - o ile rozumiem przykładowy kod który mi podałeś, to sprawdzanie warunku co pewien czas (Wybór sekwencji) zostało wycięte. Może inaczej w takim razie. Nie próbujmy uzdatniać na siłę tego kodu bo może źle podszedłem do problemu. Na tą chwilę pragnę zapytać o prosty przykład sekwencji zmiany wyjścia Q0.0...
Witam! Mi również bardzo podoba się wykonanie płytki. Ale przejdźmy do konstruktywnej krytyki :-P. I tak moja pierwsza uwaga dotyczy tego fragmentu kodu: DDRD|=(1<<PD5)|(0<&... //PD5 jako wyjście, PD0 jako wejście W wypadku tego programu wszystko będzie działało jak należy ale w innej sytuacji mógłby się pojawić kłopot....
Do diod LED w szereg oporniki min. ok. 200OHm bo procesor się spali. W zasadzie sprawdzić w danych katalogowych prąd dopuszczalny w stanie niskim dla ATMegi8L. Bo dla zwykłych 20mA. Dioda zapali się po ustawieniu reset portx.y a wyłączy po ustawieniu set portx.y. Pojedynczy pin ustawia się config pinx.y=output. A nie config portx.y. Przynajmniej dotychczas...
Aby wejść do drugiego warunku i musi przyjąć wartość co najmniej 256, co jest nie możliwe, bo przy i == 255 program nie wejdzie do pierwszego warunku w którym jest inkrementacja. W drugim warunku z kolei nie osiągnie wartości potrzebnej do wyzerowania i. Czemu nie nie zastosujesz if()...else? Faktycznie, niedopatrzenie. Poprawiłem błędy ale i tak działa...
Witam trochę temat rozszerzyłem, jest w innym poście pod tematem 4 wejścia jedno wyjście. Ja napisałem w oparciu o jedną książkę na ATTINY 2313 programik ale coś mi nie działa tak jak bym chciał oto on Config Portd = Output 'port d to wyjścia Config Portb = &B11110000 'b0 do b3 wejścia Portd = 0 ' ustaw port d na zero Portb = 0 ' ustaw port b na zero...
Witam serdecznie, nie było mnie we wrocławiu, dlatego nie byłem w stanie odpisać. Potrzebuję zaprogramować dowolny procesorek np. attiny 2313 (taki mam w tej chwili). Napisałem programik w oparciu o QBASIC (znalazłem książkę w której znalazłem procedury) ale coś mi nie działa tak jak bym chciał. To jest kod źródłowy tego programu: Config Portd = Output...
Witam serdecznie Ja napisałem programik na Attiny 2313 w QBASICU (taką ksiązkę mam) ale nie działa tak jak bym chciał oto on może to coś pomoże: Config Portd = Output 'port d to wyjścia Config Portb = &B11110000 'b0 do b3 wejścia Portd = 0 ' ustaw port d na zero Portb = 0 ' ustaw port b na zero 'sekwencja włączania kompresorów If Pinb.0 = 0 Then Portb.4...
Witam, dziękuje za zainteresowanie :) Hmm, to jest coraz dziwniejsza sprawa. Rozwiązanie z pkt 5 nie działa tak jak zakładamy, cały czas jest spełniony warunek z if'a. Natomiast 'procedury testowe' z punktów 7 i 8 działają tak jak zakładasz. Odnośnie pkt 6 robot działa już pod kontrolą programu w BASCOM'ie więc elektronika jest zlutowana poprawnie....
Niestety muszę wrócić do kodu pokazującego najbliższy alarm. Alarm ustawiony na poniedziałek 6:30 - w sobotę pokazuje OFF - w niedzielę o 00:30 pokazuje numer alarmu i godzinę - w niedzielę o 11:30 pokazuje OFF Dzieje się tak dlatego, bo nie uwzględniony został przypadek aktualnej godziny większej niż godzina alarmu ( próbowałem to rozwiązać, dlatego...
Witam Jako ze to moj pierwszy post chcialbym z gory napisac ze jestem laikiem jesli chodzi o uC. Bawie sie tym od 2 tygodni, probowalem programowac w C ale niestety za wysokie progi. 2 dni temu zabralem sie za bascoma i wymodzilem programik do sterowania solarami, na dwoch czujkach ds1820. Mam prosbe do Was, czy jest cos w kodzie co mozna poprawic (zapewne...
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.
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...
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.
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...
Rzuciłem okiem w HELPa i funkcja "inputbin" czeka na znak, program dalej się nie wykonuje. Może lepiej użyć przerwań wykonujących się, gdy w buforze UART jest znak ?
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...
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...
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).
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...
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.
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 podaniu liczby pętla zaczyna się na nowo, jeśli c==x to wychodzi z pętli. W praktyce warunek x==c nie jest nigdy nawet sprawdzany.
if(++m >= 1600) Jest uproszczonym zapisem do ++m; if(m >= 1600) Zauważ, ze w moim kodzie nie ma pętli 'for' - zmienna m jest zwiększana dopiero po spełnieniu warunku, potem zmienia się zachowanie (zmniejszanie delty). U ciebie nadal jest pętla for, przez co każdy z warunków jest sprawdzany po 800 razy. Kod zawiera błąd, mianowicie...
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...
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...
wynik warunku rysowanie pętli przewody pętli
nagrywanie kaset danfoss 077b6100 skrzynia automatyczna honda civic
sterownik hulajnoga elektryczna sterownik hulajnoga elektryczna
HCS300 – programowanie układu KeeLoq: CH341A, CH347T czy PICkit 4/5? Audi A8 D3 – nie gaśnie podświetlenie zapalniczek i przycisków MMI po zamknięciu auta