Skąd takie wnioski? Pętla while w funkcji głównej nigdy się nie kończy - jest nieskończona: jest realizowane natychmiast. Wrzuć fragment kodu lub dokładniej opisz problem? Sprawdź w swoim kodzie czy włączasz przerwania: sei()
Aha, już rozumiem, wg mnie mylisz dwie rzeczy: [syntax=c]volatile int * ptr; int * volatile ptr;[/syntax]
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...
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.
Są dwa rodzaje pętli while: [syntax=c]do {} while(true);[/syntax] oraz [syntax=c]while(true) {}[/syntax] Zauważ, że tylko pierwsze while() w Twoim kodzie odnosi się do 'do {} ' na początku, następne są pętlami drugiego rodzaju, na dodatek pustymi.
Użyj znacznika syntax zamiast code do wrzucania kodu i go sformatuj. Nie da się tego czytać. Zastanów się na spokojnie nad swoim programem. Działa on obecnie tak: 1. Czytaj z wejścia analogowego 2. Jeżeli odczyt > 700 to wyłącz grzałkę i wskocz w pętlę, która za pierwszym razem nie zadziała bo temperatura tak szybko nie spadnie (analogRead będzie...
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.
1. ^ to operator logiczny alternatywy rozłącznej. Co on tu robi? Raczej chodziło Ci o potęgowanie. Nie ma operatora potęgowania - trzeba użyć funkcji. Operator potęgowania w postaci ^ to, jeśli dobrze pamiętam, tylko Basic wykorzystywał (i Excel ;) ) 2. Rozmiar tablic dynamicznych podaje się w nawiasach kwadratowych. Nie wiem, co oznacza zapis stworzony...
Tak się zapytam, plik config.php, zawarty w nim kod jest w obrębie <? ...?> ?
Wydaje mi się, że sam sobie odpowiedziałeś na pytanie. Dla ścisłości proponuję każdy z tych warunków umieścić w osobnym nawiasie. Zasadniczo w warunku pętli pytasz: Czy zmienna jest różna od "tak" ORAZ czy jest różna od "Tak" ORAZ czy jest różna od "TAK" Jeżeli wpisałeś "Tak" to został spełniony jeden warunek, pozostałe nie. Ponieważ operator && jest...
[syntax=php] foreach ($tydzien as $numerDnia => $nazwaDnia) { print "Nr dnia".$numerDnia." nazwa".$nazwaDnia; } [/syntax]
While - wend działa do póki warunek jest prawdą. Zamiast OR wstaw AND i zmiana któregokolwiek spowoduje opuszczenie pętli.
Powód jest bardzo prosty: zmniejszenie zmiennej w pamięci nie jest operacją atomową. Co prawda za każdym razem następuje odczytanie zmiennej, zmniejszenie jej a następnie zapis, to jeśli przerwanie wystąpi pomiędzy odczytem a zapisem, to utracisz zmianę dokonaną w przerwaniu. W przypadku gdy przerwanie i funkcja main konkurują o jeden zasób, musisz...
Cos sie tak uparł na to while :) Jest to bardzo zdradliwa operacja :wink: Ty wpadasz w void KeyPressed (void) i już z niej nie wychodzisz :) Czemu?? Przyglądnij się. Lepiej operowac na flagach , jak klawisz wciśnięty ustaw bit i w dalszym miejscu sprawdzasz że jak ustaowiony ten bit to migaj itd. :) np: void main(void) .... ... ... {...
Jeżeli używasz jakąś zmienną w przerwaniach to powinna ona być zadeklarowana jako volatile. Dlatego: unsigned char buf_TWI void AVR_wyslij(unsigned char lb_dane) { cli(); // zablokowanie zezwolenia na przerwania if(TW_STATUS != TW_ST_SLA_ACK) // sprawdzenie czy ukłąd mastera wysłał prawidłowy adres Slave'a { sei; //...
Zmień deklarację zmiennej flaga_swieci na taką: volatile unsigned char flaga_swieci; powinno pomóc.
No ale właśnie nota AVR315 bazuje na przerwaniach. Startujesz transmisję za pomocą funkcji TWI_Start_Transceiver_with_Data() i możesz procesor zająć wykonywaniem innego kodu. Jeżeli procesor będzie miał wystarczająco dużo pracy przez okres trwania transmisji (lub dłużej), to wykonanie while ( TWI_Transceiver_Busy() ); wcale nie będzie trwało 160 taktów,...
Ta funkcja musi działać. Albo podajesz błędne adresy albo hardwarowo jest coś nie tak. Przypadkiem nie ustawiaj podglądu rejestrów I2C do poglądu w debugu.
Może o taką choinkę ci chodzi?? http://obrazki.elektroda.pl/3066640800_1...
Najprawdopodobniej zanim kondensator się naładuje po włączeniu podciągania to sprawdzasz stan i otrzymujesz stan niski.
Z tego co się doczytałem zmienne tworzone w funkcji "giną" w raz z wyjściem z funkcji ale jak to jest naprawdę?? Radzę znaleźć jakąś dobrą książkę do C. W skrócie: takie zmienne (automatyczne) giną ponieważ przechowywane są w trakcie wykonywania danej funkcji na stosie. Jeśli program wchodzi w nową funkcję na stosie zapisywany jest kontekst powrotu...
Pisane z głowy i na szybko. [syntax=cpp] volatile int8_t stan; ISR (INT0_vect) { if (stan == 1) stan = 0; else stan = 1; } int main(void) { DDRD=0xff; PORTD=0x00; DDRC=0xff; stan = 0; MCUCR |= (1<<ISC01);//poczytaj o tym GICR |= (1<<INT0);/// i o tym sei(); uruchamia mozliwos uruchamiania przerwan while(1) { if (stan == 0) { while(1) { cośtam...
Ten kod się wykona, gdy wypełni się cały klaster: [syntax=C]if(j == sectorPerCluster) { j = 0; break; } [/syntax] który zakończy pętlę do .. while pomimo, że data != '~'
o ile wszystko jest dobrze to brakuje Ci magicznego słowa "volatile"
Brak jakiegokolwiek odpowiedzi w tym temacie zmusił mnie do wytężonej pracy umysłowej dzięki czemu bardzo proste menu funkcyjne wraz z prostym mechanizmem poruszania się po nim zrealizowałem przy pomocy pętel while i instrukcji warunkowych if else. Pozdrawiam i dziękuję.
Po prostu usuń średniki po #define. To nie są instrukcje języka. No i usuń średnik po if()- średnik w C rzecz prawie święta- ale tylko prawie. Poza tym w pierwszej wersji nie było średnika po if(). A wtedy: Build succeeded with 0 Warnings...
Można tak: #include <stdio.h> #include <conio.h> int main() /* jeżeli na końcu procedury dajesz return(0), to prototyp powinien być int main(), a nie void main() */ { int jakas_zmienna=1; int a,b,c,P,O; while(jakas_zmienna) { clrscr(); printf("Podaj wartosc a=");...
while(opcja != SW_SET);
Jeśli sprawdziłeś już pierwszą wartość z kolumny, to po zresetowaniu znowu zaczynasz od pierwszej... Żeby skrócić czas działania, można liczyć przebiegi i podstawiać Nr kolejnego wiersza wg schematu: licznik=1 Pętla zewnętrzna WP=licznik Pętla wewnętrzna instrukcje Loop licznik=licznik+1 Loop
Witam. Wydaje się że jeżeli wciśniesz przycisk zostanie wykonana pętla while. Pętla ta będzie wykonywana przez czas wciśnięcia przycisku. Jest to na tyle szybki proces że wartość zwracana może wyglądać na losową. Proponuje wstawić jakąś funkcję opóźniającą w pętli while.
Załącz plik. Jeśli typ zmiennej jest Variant, nie powinno być tego błędu.
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...
Najprościej jak tylko możliwe Dim p As Variant p = "a" Do While IsNumeric(p) = False p = InputBox("Podaj kapitał początkowy:") If p = "" Then Exit Sub If IsNumeric(p) = True Then Exit Do MsgBox "Zle dane" Loop
zapomniales Dir() przed Loop tj. plik=Dir()
Pętla główna while powinna kończyć się przed "return 0". Teraz kończy się za wcześnie. Usunąć break pozostałe po switch (3 sztuki w pętli while).
Dwie nieskończone pętle while, ciekawe kiedy przejdzie z pierwszej do drugiej.
przecież wysyłasz to w pętli while
Brakuje zamknięcia w {} wnętrza pętli while. I formatowania.
Po sprawdzeniu warunku wpadasz w nieskończoną pętle while(1).
jak s jest null-em to nie możesz na nim wywołać .equals(). Może lepiej czytać z pliku w pętli while-do zamiast do-while?
Zamiast tablicy użyj listy.
Pierwszy scanf wczytuje tylko liczbę zmiennoprzecinkową, a pamiętaj, że tam jest również enter. Zostaje on w buforze i trafia do drugiego scanf. Możesz to sprawdzić debugując program lub - co jest bardziej popularne wśród początkujących - zrób wydruk zmiennej ch. Musisz wyczyścić bufor przed wykonaniem drugiego scanf: [syntax=c]fflush(stdin);[/syntax]
Czy pętla while(1) w funkcji dla menu jest wywoływana w pętli loop()? Z kodu, który przedstawiłeś ciężko się połapać, jaka jest relacja pomiędzy funkcjami menu() a menuZdarzenia().
Witam Chodziło Ci o coś takiego? #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { char tekst[100]; int i=0; cout<<"Podaj tekst do wpisania: "; cin>>tekst; while( tekst[i]!='h') i++; cout<<"Liczba znakow to:...
Dlaczego goto? Wystarczy zwykła pętla while, którą zakończysz gdy będziesz chciał skończyć wątek.
Oczywiście że wracasz tam gdzie zostało wywołane przerwanie. Potrzebny Ci warunek wyjścia z pętli while(1) funkcji efekt1 inaczej nigdy nie wrócisz do main'a.
A gdzie schemat? Czemu nie ma u ciebie w programie pętli while?
Pytanie gdzie w pętli while(1) i jak w tej pętli używasz funkcji beep() ? Nie potrzebuje funkcji beep() potrzebuje całego kodu aby Ci pomóc. Przynajmniej pliku main.cpp(.c)
Tak, nie działa. Z prostej przyczyny, że sam włączasz setki niezależnie od tego, która cyfra jest wyświetlana w 4 instrukcji pętli while() Albert
zwykła pętla "while" załatwi sprawę :) http://dzono4.w.interia.pl/kurs/doloop.h...
nie bazuj na pętli o określonej liczbie przebiegów, lecz na pętli while, zaś licznikiem niech będzie dodatkowa pomocnicza zmienna, która bedzie inkrementowana wyłącznie w przypadku wprowadzenia poprawnej wartości.
Patrząc na to: [url=http://download.mikroe.com/document... to wystarczy jak będziesz sprawdzał wynik wywołania funkcji I2C1_Wr(xx). Jeżeli funkcja zwraca 0, to idziesz dalej. Jeżeli funkcja zwraca coś innego, to reagujesz stosownie do zgłoszonego błędu. Mnie martwi coś innego. Piszesz, że wyświetlacze...
Najprościej będzie zrobić sobie całość w pętli while lub repeat. [syntax=pascal]REPEAT for a:=1 to 5 do writeln('*'); writeln('Czy powtórzyć t/n?'); readln(odp); UNTIL(odp='t');[/syntax]
Wystarczy, że kolega do pętli while wpisze tylko to: [syntax=c] for(i=0;i<5;i++) { PORTB = (1<<i); _delay_ms(1000); } [/syntax] pozdrawiam edit: oczywiście zamiast i<5 wpisz 8
w pętli while dodać warunek od zmiennej liczącej czas zmniejszanej w przerwaniu timera [syntax=c]timeout=100; while( !(TWCR & (1<<TWINT)) && timeout); if(timeout==0) // obsługa błedu[/syntax]
Spróbuj może odczekać chwilę pomiędzy obiema pętlami while albo w jednym przebiegu loop() wysyłaj dane do altSerial, a w następnym jej przebiegu odbieraj z altSerial. Używasz Timers, więc możesz z tej biblioteki też skorzystać.
co w zamian jeśli nie mogę porównać tych wartości, aby wykryć który znak się pojawił? Do porównywania znaków nie trzeba używać strcmp(), wystarczy prosty if np.:[syntax=c] if (x == 49) { // akcja }[/syntax] break pod koniec pętli while() jest zbędny
Powyżej podałem przykład co powinno się znajdować w obsłudze przerwania od timera. Natomiast same przyciski możesz sprawdzać w pętli while() jeżeli nie chcesz angażować do tego osobnego przerwania.
Płytę tą można programować w kilku językach, m.in Python i C. Kompilacja przebiega do pliku img. W większości języków będzie to kod opierający się na pętli warunkowej if i pętli while.
Goto się nie używa. Są lepsze i ładniejsze sposoby na zrobienie tego.
Pierwszy przykład to zmienna globalna alokowana w pamięci danych. Drugi to zmienna lokalna umieszczona na stosie. Z logicznego punktu widzenia zmienna i jest widoczna tylko w pętli, więc jest usuwana po wyjściu z niej programu. W rzeczywistości kompilator to optymalizuje i fizycznie ta zmienna nie jest usuwana z pamięci z każdym przebiegiem pętli. Możesz...
To nie jest konfiguracja tylko funkcja obsługi przerwania. Ta pętla while czekająca na koniec odbioru wygląda nie najlepiej w funkcji przerwania. Na początek spróbuj bez przerwań czy w ogóle działa.
http://forum.4programmers.net/C_i_C++/16... ... używaj Google.. nie gryzie..
Z pętli while() i do..while() możesz też wyskoczyć używając break. Czasami zamiast tworzyć skomplikowany warunek do działania pętli łatwiej jest stworzyć warunek na jej przerwanie. Wybór działu rzeczywiście "znakomity". Jak tylko moderator się obudzi będziesz miał przechlapane :-)
Sprawdź a zobaczysz, że działa bo pętla while działa póki jej warunek jest różny od 0 a przyciski zawierają Ci do masy nie? Z wykrzyknikiem pętla będzie działać póki jest wciśnięty przycisk a bez póki jest puszczony.
To proste. Przy każdym przebiegu pętli 'while' plik jest otwierany i zamykany (zamknięcie odbywa się automatycznie po wyjściu z bloku 'with'). Aby sposób kolegi (at)tronics zadziałał, musiałbyś przed linią zawierającą tFile.read() resetować wskaźnik pliku na jego początek (bodajże tFile.seek(0)).
tu masz sposób sortowania http://pl.wikipedia.org/wiki/Sortowanie_... a tu jak działają pętle w TP http://www.sciaga.pl/tekst/50976-51-petl... wystarczy tylko przekształcić kod z pierwszego linku i sprawa załatwiona. Powodzenia
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ą.
Nie oczekujesz chyba, że ktoś poda Ci gotowca ... Wyglada to na jakieś zadanie szkolne/studenckie. Podpowiedź. użyj pętli (while do) warunków (if) szukanie też się przyda (find) Reszta to kwesia pomysłu. Na kokretne problemy łatwiej będzie o pomoc. Powodzenia.
więc zamiast readln otwórz plik i wczytaj z niego do tej zmiennej. Przypisz (assign), otwórz (reset), w pętli (while not eof) wczytuj (readln) do pomocniczej zmiennej, którą rozbudujesz swoją obecną zmienną (zm := zm + ...) i na koniec zamknij plik (close).
Dopisz więc scanfa albo getchar() w pętli while zamiast sleep (program w main będzie czekał na klawisz, ale sygnał będzie przechwytywał i obsługiwał w catch) i jakieś porównanie. Wtedy Ctrl+C wyrzuci ci komunikat, a wyjdziesz tylko tajemnym klawiszem. O ile dobrze rozumiem twoje intencje.
Zacznij od zrobienia tego na pollingu, czyli w pętli while(1), bez przerwań, ale z poprawnym odczytywaniem flag TXE i RXNE przed zrobieniem czegokolwiek. Proponuje więc wrzucić do tej pętli coś takiego: [syntax=c]if ((USART3->SR & USART_SR_RXNE) != 0) { uint16_t x = USART3->DR; while((USART3->SR & USART_SR_TXE) == 0); USART3->DR = x; }[/syntax] Tym...
Co ja widzę? Ty Cały kod programu z dziesiątkami pętli nieskończonych i delay'i wrzuciłeś w kod obsługi przerwania?? Gratuluję pomysłowości... :) Po co stosując przerwanie od zakończenia transmisji używasz jeszcze jakiegoś USART_vReceiveByte(void) które miałoby sens gdybyś stosował polling. Nie prościej w [syntax=C] ISR(USART_RXC_vect) { data=UDR; //dalszy...
Sterowanie serwo w obecnej postaci jakoś szczególnie dużo mocy obliczeniowej nie zużywa. Umieść obsługę czujnika i obliczenia w pętli while w main() i sprawdź. Moim zdaniem powinno być z tym mniej roboty niż z obsługą i wzajemną synchronizacją komunikacji dwóch procesorów.
Witam, jak będzie wyglądał kod programu w języku c na sprawdzenie czy liczba jest parzysta przy użyciu pętli while?
Dodam uwagę do schematu - C9 lub C8 daj do pinu AVcc (nie ta strona L1).
W tym uP masz zegar czasu (TIC), możesz go wykorzystać do odliczenia opóźnienia (nawet w przerwaniu), zamiast liczyć cykle maszynowe. Dodatkowo ten procek jest jednotaktowy więc jeden takt zegara to jeden cykl maszynowy. Co do tego ,że pętla "while" liczy inaczej od "for" to wszystko zależy od kompilatora, musiałbyś zobaczyć kod w ASM żeby to wszystko...
No wreszcie :-) bo już traciłem nadzieję, że czytasz cokolwiek piszę: ale nadal mam problem teraz ../main.c:26: error: expected expression before '}' token make: *** Bo brak średnika na końcu pętli while.
Po prostu źle skonfigurowałeś pamięć - pewnie wynika to z niechęci do czytania RM-ów.
Tak już poprawiłem błąd - wiesz wklejam kod który teoretycznie jest w 100% poprawny ... i przetestowany jak widać to nie prawda
Zastanawiam sie czy w winavr nie wystepuje blad podczas stosowania petli "while". Mianowicie podczas stosowania petli while z oczekiwaniem na zmianę wartości zmiennej w przerwaniu w glownej petli okazuje sie ,ze program sie zawiesza. Fragment kodu: ... while (! temp); ... Z listuingu wynika : ..... .L058 lds r25,temp .L059 tst r25 breq .L059 .... Z...
Przed tą zieloną pętlą musisz dać tę linię kodu a w zasadzie przenieś ją z sprzed czerwonej pętli $wykonaj_produkt=mysql_query(select.... bo za drugim razem tablica mysql_fetch_array jest już pusta i pętla while się już nie wykona
Jeśli zależy Ci na nieblokowaniu głównego wątku programu to musisz wyrzucić to na osobny wątek. Obie instrukcje - Pending i Accept... - tak czy inaczej w jakiś sposób blokują, tylko Accept... po prostu nie puści dalej, a Pending puszcza i sam musisz obsłużyć (w ten sposób można też łatwo przekazać do wątku flagę o konieczności jego zamknięcia i przestania...
Narazie wstawiłam 4. Wstawione niepoprawnie. To zadanie szkolne wymagające samodzielnej pracy. Proszę sobie poszukać jak się wstawia komentarze w języku, który koleżanka chce komentować.
Nie wiem o co chodzi, przecież Ty napisałeś ten program :) generalnie to masz zdefiniowaną w programie stałą o nazwie PORTD2 która ma wartość 2 i tyleż o niej wiadomo. Nigdzie jej nie używasz w tym pliku więc nie da się stwierdzić do czego służy. Pusta pętla while jest dlatego, że cały program wykonuje się w przerwaniach. "Normalnie" to pętla while...
<Ctrl-Z><Enter> - na kolejnym pustym wierszu. To po każdym wierszu będzie pokazywać licznik: [syntax=c]#include <stdio.h> int main() { int a, an; an=0; while((a=getchar())!=EOF) if(a=='\n') printf("%d\n",++an); return 0; }[/syntax]
Taka konstrukcja choć poprawna składniowo to logicznie jest błędna - ta pętla while jest nieskończona. To, co obserwujesz, to tak naprawdę pochodna tego błędu - zmienne mają ograniczoną "pojemność", jak będziesz pomniejszał wartość jakiejś zmiennej w nieskończoność, to po dojściu do jej wartości minimalnej i próbie zmniejszenia o 1, zmienna wskoczy...
Wewnątrz pętli while (bt == 'z') sprawdź wartość bt [syntax=c]char bt = Serial.read(); [/syntax] Albo wymusić przerwanie pętli break-iem. Ewentualnie przypisz do bt inną wartość. [syntax=c]char bt = '0'; [/syntax]
Deklarujesz zmienną jako globalną volatile.
Niestety kod działa w taki sposób, że zapalają się wszystkie zadeklarowane LEDy, a nie jedna po drugiej (oczywiście migają). Wszystko się zgadza. Tak, właśnie napisałeś kod :) Musiałbyś w pętli loop obsługiwać dwie dodatkowe zmienne, które wskazują na konkretny kolumnę i rząd dla leda, która ma się zapalić, a po 500ms zgasnąć - te zmienne musiałaby...
Strasznie to zagmatwałeś. Poza tym Matlab jest beznadziejny w pętlach i tym podobnych, za to dobrze sobie radzi na operacjach na macierzach. Pozycje jedynek znajdujesz tak: macierz = \ [ 0 0 0 0 0 ; 0 1 1 1 0 ; 0 1 1 1 0 ; 0 0 0 0 0 ] [i, j] = find(macierz == 1) % i zawiera indeksy wierszy % j zawiera indeksy kolumn Podobnie...
Skoro chcesz żeby pętla wykonywał się do puki kod=="x" to przepraszam bardzo co z inicjalizacją zmiennej...? No przecież jest zbędna bo czeka na jej wpisanie tutaj : [syntax=c]scanf("%c",&kod);[/syntax] a jeśli ją zainicjalizuje to co z tego ? jeśli scanf od razu pobierze z bufora klawiatury znak i wpisze go do zmiennej 'kod' ? Pierwszy raz widzisz...
w objekcie masz tylko wskaźnik do następnego objektu a więc musisz wszystko zwalniać pokolejii.. jeśli zniszczysz (delete) tylko 'wskażnik_na_węzeł_listy' to wskaźnik na kolejną instancje tej klasy zostanie stracony (wyciek pamięci), a obszar wskazywany niezostanie zwolniony... musisz usuwać wszystko pokolejii.. ew można całość dać do pętli while......
A są wszystkie węzły w treeview utworzone w momencie wykonywania kodu? Ponadto zwróć uwagę, że podczas usuwania wprowadzasz totlany bałagan w przeglądaniu... Usuwa się albo od końca, albo przy użyciu pętli while i ręcznej inkrementacji licznika wyłącznie w momencie, gdy element nie jest usuwany przez wzgląd na reindeksację po każdym usunięciu.
Po pierwsze pętla while przerywa działanie kiedy warunek jest niespełniony, po drugie w warunku robisz przypisanie zamiast porównania (powinno być !=). Używaj odpowiednich flag kompilatora żeby wykrywać takie banalne błędy (-Wall). Ponadto zainicjuj zmienną "haslo", ponieważ może się zdarzyć tak, że na starcie będzie miała wartość taką jak ID (co jest...
PCONP podpina zegar do SPI i to jest zazwyczaj w startupie, jeżeli nie ma to musisz go włączyć. Jeżeli program tkwi w pętli while(1) w przerwaniu to dlatego, że nie może wysłać danych, zapewne kontroler SPI nie jest poprawnie skonfigurowany. A także PINSEL0 powinno być PINSEL0 |= 0x1500 skoro manualnie chcesz CS sterować.
Założenia Watchdoga są takie, że jeśli włączysz przerwanie od niego to za pierwszym okresem nie zresetuje procesora tylko wejdzie w obsługe przerwania, ale on w tym przerwaniu skasuje bit WDTIE i już za drugim okresem zrestartuje procesor. Żeby Watchdog stale miał włączone przerwanie to trzeba to w kółko ustawiać. Teoretycznie nie powinno się z powrotem...
tak teraz się jeszcze raz przyjrzałem kodowi i przy pętli while są dwa błędy: - średnik na końcu znaczący koniec pętli - przypisanie do zmiennej liczba cyfry zero zamiast porównania - samo wyświetlanie wyniku jest takie trochę dziwne jak na wyświetlanie przekonwertowanej liczby - powinno to być raczej w jednym ciągu oraz przy sysmie przy systemie o...
Można napisać program, który nie ma żadnego sensu i Eclipse nic nie zgłosi, on nie ocenia poprawności algorytmu tylko czy składnia jest OK, nawiasy, średniki, itp. Na pewno uruchamiając program w main() powinieneś odczytywać zmienną zapisaną kiedyś tam, a po użyciu jakiegoś przycisku zapisywać nową wartość. Raczej nie widać tu użycia write, a read w...
Pętla działą w taki sposób, że warunek musi być spełniony aby wykonać iterację. Dla danych found = False oraz i = 0 masz warunek: while not False and 0 < 7 co daje: while True and True --> while True więc pętla idzie dalej Gdy masz found True: while not True and 0 < 7 while False and True while False to przerywasz pętlę
arduino while instrukcja while while atmel
wharfedale peavey folia panel sterować skrętka połączenie komputerów
eltax atomic kable modus głośników
Toyota Avensis T25 1.8 gaśnie przy 3000 obr./min Kalibracja pieca: Co oznacza "KAL" na sterowniku?