A to wersja z opcja "pause" pozdrawiam
$regfile = "m8def.dat" $crystal = 8000000 Enable Urxc On Urxc Rs232 Enable Interrupts Do 'Instrukcje w petli Loop End Rs232: 'tutaj zostalo zgloszone przerwanie w Udr jest aktualna przeslana liczba Print Udr Return
instrukcje petli dla 8086 to np. loop albo dajesz do CX wartosc ile razy chcesz pwotorzyc petle, potem w petli dekrementujesz cx i dajesz skok na poczatek petli, jak CX sie wyzeruje to program idzie dalej btw google nie gryza
no najprosciej w glownej petli inkrementowac/dekrementowac w odpowiednim tempie jakies zmienne okreslajace wartosc wypelniania poszczegolnych 3 PWMow. Oczywiscie to dla trybu teczy. A co do zmiany trybow to w tej samej petli dodaj instrukcje sprawdzajaca stan ktoregos pinu (przycisku) i jezeli zostal nacisniety to inkrementujesz wartosc zmiennej okreslajacej...
for(instrukcja pętli nr1) for(instrukcja pętli nr2) { blok instrukcji; if (...) ...; else break; dalszy blok instrukcji; } Wystarczy wyskoczyc z petli nr 2 break i mozesz jeszcze uzyc w petli nr 1 continue
Przerwanie dlugiej petli przyciskiem mozna zrobic dajac jakas zmienna globalna np stop typu bool, ktora jest =0, jak masz petle for to pierwsze co ma byc sprawdzane to czy stop=0. Pod przyciskiem stopu dajesz instrukcje stop=1, wtedy zmienna sie zmieni i petla ominie wszystkie instrukcje pozostale bo if bedzie false. A przy jakims przycisku ktory ma...
W C dokladne odmierzanie opoznien jest dosyc utrudnione. Proponuje zrobic wstawke asemblerowa z instrukcja nop w petli. Korzystajac z dokumentacji mikroprocesora sprawdz ile taktow zajmuje wykonanie kazdej instrukcji i oblicz ile razy ma byc wykonana petla aby uzyskac oczekiwane opoznienie. Przy zegarze 100 MHz okres wynosi 10 ns, wiec pomnoz te wartosc...
nie wiem jak inni, ale ja w ogole nie kumam na jakiej zasadzie to ma dzialac. poczytaj sobie o : - bitowym AND - tablicach - petli for - instrukcji break 0x41 0x56 0x45!!
Niepoprawnie zaimplementowany algorytm obliczania interpolacji w danym punkcie. Zgodnie ze wzorem: http://img717.imageshack.us/img717/151/w... instrukcja: yy=yy+li*y[i]; powinna byc w zewnetrznej petli for(;;)
wait 1us pewnie jest dokladne, ale w petli masz przeciez nie tylko ta instrukcje, wiec calkowity czas wykonania petli jest dluzszy. Pomiar spokojnie mozesz zrobic na liczbach calkowitych, przeciez zapis: X=X/10000 X= 1/X jest rowny x=10000/x, ulamkow miec nie bedziesz bo przeciez kolejne liczby czasu to liczby calkowite.
pomijajac juz to ze petle sa kiepsko napisane (po co ci zmienna int, skoro wystarczy char?), to predkosc tego kodu zalezna jest od optymalizacji. jedyny sposob - poza syzyfowym liczeniem czasu instrukcji assemblerowych - to symulator. tak czy siak nie ma to jednak specjalnego sensu, bo czas twoich instrukcji bedzie stanowil ulamek tego opoznienia 5ms,...
a teraz jak to zamienić na petle while jeśli w petli for w nawiasach nie mam instrukcji :D??
void Dellay_us(unsigned char czas)//odmierza czas co 1us { for(;czas!=0;czas--) {;} } nie znam PICow, ale jestes pewien, ze dekrementacja, porownanie i skok zajmuja 1 us? jesli Twoj kompilator generuje pliki .asm to zeknij tam, odszukaj funkcje Dellay_us, znajdz petle, poszukaj w jakiejs dokumentacji do assemblera na PICe ile instrukcje wykonywane...
Kilka pytań i spraw, ktore być mogą okazać się pomocne: Z wartości przeładowania T0 (D8EF) i faktu że przerwanie chodzi 100 razy/sek domyślam sie ze używasz kwarcu 12MHz . Jednak jesli ma to byc równo 100Hz to zauważ że podana u ciebie wartosć początkowa jest za mała o 1, bo powinno byc: T0pocz = FFFFh - (Fxtal / 12 / Fto) + 1 = D8F0h (a nie D8EFh)...
Witam ! Mam taki oto kod do odbioru danych z uartu: Dim Odb As Byte Rx Alias Scon.0 On Serial Serial_int Cls Rx = 0 Enable Serial Priority Set Serial Enable Interrupts Do P2.0 = 0 Waitms 100 P2.0 = 1 Wait 1 Loop End Serial_int: If Rx = 1 Then Rx = 0 Odb = 0 Odb = Sbuf Lcd Odb ; "|" End If Return Wszystko dziala super ale...petla glowna...
Przerwania maja to do siebie, ze od sygnalu wyzwalajacego do wykonania pierwszej instrukcji handlera mija sporo czasu. Zwykle jest to kilka us. Aby tego uniknac sugeruje bys linie zegarowa monitorowal w ciasnej petli na okolicznosc zmiany poziomu, i w momencie wykrycia takiej zmiany rejestrowal stan linii danych. To powinno Ci umozliwic Ci monitorowanie...
Źle, w skrócie powinno być tak: jeśli wiatr_ena = 0 wtedy poczekaj 25 ms (eliminacja drgań styków) jeśli wiatr_ena = 0 wtedy pętla wyjście z pętli kiedy wiatr_ena=1 (czekanie na PUSZCZENIE przycisku koniec petli reszta Twoich instrukcji warunkowych endif endif
Niestety kodu upublicznić nie mogę, więc wrzucam tyle ile potrzeba :) Jak odpalam program, dochodzę do którejś z instrukcji w petli, ustawiam sobie RXC oraz jakąś wartość w UDR, klikam w AVR Studio "następny krok", wykona mi instrukcję przy jakiej aktualnie się zatrzymałem i wyczyszcza UDR oraz bit RXC. .include "m8def.inc" .org 0x0000 sbi...
Dzieki za wyjasnienie,ale jak zrobie tak while(OFF!=0){ coś tam robi} to caly czas ustawia mi pin w stanie niskim wykonuje to co jest w nawiasie a nie to co jest w {} Chce zeby ,gdy na pinie np.PD1 wystapi stan 0 to wyszedl z petli.
snnaap, thx, niestety dalej nie działa. Ja w petli main mam instrukcję wyświet("cos",7,1) to mi wyswietla na LCD wlasnie napis cos. W momencie wysłania do uP wiadomości (i prawdopodobnie wejściu w przerwanie) uP jakby się zwieszał, czyści się ekran (chociaż nigdzie w kodzie nie mam takiej instrukcji), tak jakby przy wywołaniu przerwania poszedł w krzaki...
Witam Kolegów! Mam pytanie odnośnie odczytu portu A. Mam podłączoną klawiaturę od PA7-PA3. ponizej w skrócie program konfiguracja portu DDRA = 0x07; DDRD |= 1<<5; //instrukcja while w main oczywiscie i petli for(;;) while(!PINA & 1<<6) PORTD |= 1<<5; naciskam przycisk no i nic sie nie dzieje instrukcja PORTD |= 1<<5; nie...
Napisałem program, który ma sprawdzać czy adres pilota i komenda są takie same jak te zawarte w pamięci ram procesora (w przyszłości w eepromce). Jesli oba (adres i komenda) beda sie zgadzać ma się wykonać podprogram "wykonaj". sad - subadres/adres na ktory probuje wysłac nasz pilot komende sad1 - adres dozwolonego urzadzenia jest tylko jeden com -...
Witam, Proszę o pomoc w nastepującej sprawie. Aduc komunikuje sie z komputerem przez RS. Dane do niego wysylam z programu napisanego w C# .net. Aduc sprawdza flage RI w petli while i gdy wskazuje ona że na porcie są jakieś dane, odpala odpowiednie przekaźniki. Problem pojawia sie w momencie gdy z komputera wysylam dwie instrukcje jedna po drugiej w...
Musze sie zgodzic, ze w przypadku, kiedy programista z gory zna dokladna liczbe iteracji i na stale ja wpisuje w program jest roznica 1 instrukcji :) - jadnak jezeli mamy tablice tworzona dynamicznie to nie ma zadnej roznicy w instrukcjach w przypadku porownywania warunku wyjscia z petli. Czy roznica tej jednej instrukcji robi az taka roznice - to juz...
Jeżeli może to być wykonane z "lekkim" opóźnieniem to np. tak: semafor=1; while (semafor) { ....... //ciag bardzo wielu instrukcji w tym delaye w postasi petli for itp ....... } a w przerwaniu w stosownym miejscu ustawiasz: if (P1.0==0) {semafor=0} Jeśli reakcja ma być szybka to w krytycznych miejscach (głównie deley-e w postaci petli for) w pętli trzeba...
Wciaz zastanawia mnie jednak dlaczego 'reczne' przelaczanie dziala z tak niska czestotliwoscia, w necie wyczytalem ze mozna nawet zmieniac z czestotliwoscia 18Mhz (procek nic nie robi tylko zmienia stan portu, nawet ta zmiana nie byla w petli tylko jedna instrukcja pod druga). Otwórz sobie listing asemblerowy po kompilacji i zobacz, ile operacji wymaga...
Hej. Uzyskalem komunikacje z przetwornikiem. Wszystko niby dziala, ale mam inny problem. Mimo uzycia kwarca 11.0592 MHz nie moge uzyskac transferu danych szybszego niz ok 270 Hz (komunikuje sie z komputerem przez UART). Podczas testow predkosci polaczenia (gdy wysylalem jakies losowe dane w nieskonczonej petli instrukcja Put) problem nie wystepowal....
cin.get() i dlaczego to jest w while , a o break wiem ze wychodzi z petli w ktorej aktualnie sie znajduje
Dominującym kompilatorem na Linuxie jest GPP, istnieje jego port pod Windowsa wraz ze środowiskiem programistycznym (IDE) o nazwie DEV-CPP. Niestety wszystkie implementacje nieco się różnią a z tego co zdołałem zauważyć najbardziej wyłamuje się Builder. for (int i=0; i<10; i++) printf("w petli i=%d\n", i); printf("za...
W "C" jest to raczej malo wskazane stosowanie instrukcji skoku typu GOTO XY. Ale mozesz uzyc CASE ! lub innej petli. Pozdrawiam
Jesli zegar masz 8Mhz to jedna instrukcja trwa 8*10^-6s, wiec jak latwo policzyc musisz w petli wykonac 8*10^6 NOPow.
Witam. W opisie jest tylko pomiar pętli zwarcia, ale wiem, że jego rzekomo poprzednik (mzc-2) na 100% mierzył rezystancję uziemienia. Naprawdę ? http://www.apar.pl/mierniki-petli-zwarci... Czytaj instrukcję obsługi.
Może to Ci trochę pomoże w szukaniu rozwiązania -> http://ww.zikit.krakow.pl/attachments/23...
Nie wiem czy to zrobiłeś ale powinno być tak: ;wpierw deklarujesz nazwy .INCLUDE "EQU.ASM" ;wczytanie pliku z ustawionymi nazwami informacje dla kompilatora ;skok do glownego programu RJMP START; start to tylko etykieta moze byc dowolna (prawie) ;;; ; w tym miejscu mozna wstawic fragmenty programu np obsluga przerwan ;;; START: ;ustawienie stosu w tym...
Tak jeden cykl przy kwarcu 1MHz bedzie trwal 1us, duzo instrukcji assemblera dla avr wykonuje sie w czasie tego jednego cyklu. Powyzszy listing dotyczy C, jezeli zdebugowal bys ten listing C na Asm to moglbys zauwazyc ze ta prosta petla "for" uzywa paru albo i parunastu instrukcji asm, czyli wykonanie jednej petli trwa znacznie dluzej niz ten jeden...
ja własnie próbowałem. Dałem polaryzację, ustawiłem preskaler adc i pwm na 8 albo 64 (oba probowałem) i strasznie się przesterowywuje. Napiecie odniesienia było na avcc i na internal tez jest tak samo zle. Niewiem co jest nietak. za duzo petli i przerwania - tego typu rzeczy robi sie bez petli, cyklujac (wyliczajac dokladnie czas trwania instrukcji)...
Nic z tego nie rozumiem, a te wszystkie kursy w necie są do **** kup ksiazke Marciniaka, taka fajna zolta, ma 910 stron :P czego nie rozumiesz? wogole programowania? masz juz podany przyklad wypelniania liczbami tablicy, potrzebna ci jeszcze wiedza o dzialaniu petli FOR i o dzialaniu instrukcji IF, a program Hello Word przynajmniej napisales? :D
Witam Mam maly problem. Mianowicie, napisalem prosty programik ktory zamienia ciag stringow na liczbe integer na zasadzie zczytywania po kolei znakow z tabeli i zamiany ichpoleceniem "atoi", uzywalem roznych petli i instrukcji warunkowych ale za kazdym razem gdy uzywam polecenia "atoi" w petli to wyskakuje blad, poza petla nic sie nie dzieje(zaznaczam...
rozwiazanie problemu jest troche inne (zeszlo mi troche ale w koncu zalapalem o co chodzi) aczkolwiek jest w nim uwzglednione to co napisales. n to dlugos tablicy, rzeczywiscie porownan jest n-1 ale petla for zaczyna sie od 2 wiec jest juz uwzglednione n-1 porownan. petle zazwyczaj koncza sie gdy spelnione sa ich warunki a sprawdzenie tych warunkow...
opoznienie ma byc pomiedzy sprawdzaniem stanu a nie sprawdzanie podczas opoznienia (prawde powiedziawszy niewiem co chciales przez to powiedziec). Robisz jedna glowna petle wykonywana np 10 razy. W jej wnetrzu masz procedure sprawdzania stanu przycisku a po niej druga petle czy to zwykly for czy while na liczniku do wprowadzenia opoznienia przed kolejnym...
Pomyliłem się w instrukcji. LJMP START dałem na końcu a nie w petli głównej. Może przez to nie chodzi. Dodano po 4 Sprawdziłem przerwanie działa ale program po wykonaniu podprogramu przerwania nie wraca do programu głównego.
Ale wiesz, to nie o to chodzi, ze zmienna bedzie sie zmieniac 100 czy 100tysiecy razy na sekunde. Uzyj tak czy tak drugiego sposobu. Jezeli w petli masz tylko te kilka instrukcji, to powiedzmy ze wywoluja sie one 10 cykli procesora (nie chce mi sie teraz liczyc ile to bedzie cykli) I tak naprawde od gdzies 5 do 10 cykla zmiana wejscia z 0 na 1 moze...
Chyba nie bardzo zrozumiałes o co chodzi. Program ma własnie zakonczyc prace na petli do..loop a procedura "info:" jest tylko po to by pokazać ze instrukcja CLS ktora nie bierze udziału w programie jednak przeszkadza i przeciaga ponowny start procesora o dodatkowe 270ms.
MAX4020 - to bardzo szybki wzmacniacz - stosowany glownie jako driver malej mocy. Takie wzmacniacze "lubia" male wartosci rezystancji w obciazeniu i sprzezeniu zwrotnym. 1 MHz bardzo latwo z niego wyciagnac. Pozostaje tylko kwestia wzmocnienia. Bo wzmocnienie bedzie tobie ograniczac pasmo - a w tej instrukcji nawet nie ma wykresu pasma w zaleznosci...
Witam. Wygląda na to, że Kolega niewłaściwie używa instrukcji skoków, próbując zastosować po nich instrukcję RET. Taka konstrukcja ma zastosowanie przy wywoływaniu podprogramów instrukcjami LCALL lub ACALL. Te dwa rozkazy zapamiętują adres powrotny, umieszczając go na stosie. Natomiast RET odczytuje ten adres i powoduje dalsze wykonywanie programu właśnie...
tyle ze u mnie w tym miejscu jest 0 :-( moze dlatego ze nie dziala w petli tylko przelatuje po ifach i koniec programu. Potem to sprawdze, dzieki :-) Dlatego tak jest bo robisz 'pełny RUN' (F5), zamiast "Step into code" (F8). Symuluj program w stylu "step by step" -klick on icon- (czwarta od lewej strony), albo F8 i obserwuj lub zapisuj wartości zmieniające...
Sprobuj to odpalic w emulatorze AVR Studio to bedziesz wiedzial co jest nie tak. Emulator to podstawa to analizy takich problemow. W programie rzucilo mi sie w oczy: inc zl inc zh - pierwsza instrukcja spowoduje zwiekszenie adresu wskazywanego przez Z o 1, a druga o nastepne 256! Bo zh to jest starszy bajt adresu. Chyba nie o to Ci chodzilo... ;] dyrektywa...
witam moj program działa w petli i wykorzystuję przerwanie int0 po skoku do przerwania wykonuje rozkazy przerwania po czym wraca do miejsca gdzie z petli wyszedł . jak zrobić aby program powracał z przerwania za każdym razem do konkretnej instrukcji a nie do instrukcji na której skończył pracę zanim skoczył do przerwania AVR Studio pozdr.
Witam. Dzis postanowilem zabrac sie za napisanie programowego PWM i narazie zbieram pomysly azeby cos potem z tego sklecic :) (nie programuje zbyt dlugo na AVRach) Po kilku namyslach doszedlem do takiego rozwiazania: Kazde serwo to integer. Sprawdzam stan okreslonego serwa czy wynosi jakas liczbe(okreslona liczbe cykli zegara odpowiadajaca Xms(zaleznie...
Warunek nie jest ten sam dla 0 jest to 0v a dla 4 jest to 4 v !!! inaczej if(wolty==0) i if(wolty==4) . jeszcze raz powtarzam instrukcja ma sie wykonać raz is sprawdzać drugi warunek a instrukcja z drugiego warunku też ma się wykonać raz . Czyli wykonanie pierwszego warunku jeżeli jest spełniony no i zatrzymanie petli przed drugim ponieważ nie jest...
Generalnie to nie ma potrzeby aż tak szerokich opisów. Np dla warunków wystarczy "l1 = 25?" Komunikat proszący o podanie oraz operacje podania liczby można zapisać w jednym bloku wejścia wyjścia, ale jeśli rozbijemy na dwa, to nie jest to jakimś błędem. W całej petli FOR zdecydowanie zapomniałeś o zwiększeniu licznika pętli. Takie funkcje jak wyczyść...
Witam. Z definicji liczba instrukcji w obsłudze przerwania powinna być minimalna, by mogło się ono maksymalnie szybko wykonać. Tymczasem w przypadku mojego programu liczba instrukcji w obsłudze przerwania była stosunkowo duża. By wybrnąć z tego problemu zamierzam w przerwaniu ustawić flagę która oznacza, że przerwanie zostało wygenerowane, natomiast...
Nie chce Ciebie zniechecac ale zasugerowalbym napisanie programu od nowa. Jesli nie wiesz jak korzystac z operaci odczytu/zapisu pliku - stworz program, ktory zapisuje jedna wartosc do pliku, a nastepnie ja czyta. Nadawaj dluzsze nazwy zmiennych - wtedy oprocz tego, ze Tobie bedzie sie latwiej pracowalo to komus to bedzie sie latwiej cyztalo. Korzystaj...
Karol, miałem Ci napisać :P przez komunikator.. :D ale pisze tu.. może się przydać komuś :) pierwsze co to podam Ci pętle na 1us :) przy 16MHz w kodzie ASM $asm ldi R21, 0 delay_1us: inc R21 cpi R21, 4 brlo delay_1us $end asm lub pisany kod z głowy :P ale jeszcze do udoskonalenia... :P całego przerwania na podstawie ostatniego Twojego skrawka kodu......
Nie sadze, by ktokolwiek znal dokladne wartosci opoznien dla poszczegolnych iteracji petli for, zwlaszcza w wielopoziomowym ukladzie. Z doswiadczenia jednak moge podpowiedziec ze dwie petle FOR z licznikami do 255 powinny Ci bardziej niz wystarczyc. Wrzuc takie petle na symulator i popatrz ile czasu zajmuja, a potem dopasuj liczniki tak by otrzymac...
ten program w asemblerze trzeba napisać.Potrzebny mi jest na jutro do szkoły MOV R0,#00H ;w R0 adres wzgledny odczytu i zapisu NIE WIEM PO CO ODCZYT: CLR A ;zerowanie akumulatora , poczatek procedury MOV B,#03H ;mnoznik do rejestru B MOV A,R0 ;do akumulatora PO CO? MOV DPTR,#0AB10H ;laduje do DPTR pierwszy adres z pod ktorego odczytujemy dane DLACZEGO...
wlasnie chodzi o to, ze w przerwaniu ustawiam tylko flage. I nie wiem co mu pochlania tyle czasu. W sumie po wujsciu z przerwania w głownej petli jest jescze warunek if , wlaczenie timera i odczyt rejestru, ale to chyba nie pochlania 50 instrukcji
Mam zarówno funkcje i jak i procedury. Mniej wiecej struktura programu to: Inicjalizacja glowna petla gry - zlozona z funkcji i procedur Jednak musze wrocic nie do glownej petli gry, a wyzej do inicjalizacji, wiec po wyjsciu z petlu gry mam utworzona instrukcje skoku do inicjalizacji, jednak mam swiadomosc ze to bardzo zaburza kod i chcialabym to zmienic
Chodzi mi o to że jeżeli chce uzyc petli do while to musi byc zdeklarowana przez np. double. Natomiast double nie zawiera w swoich instrukciach %(dzielenia z reszta). Więc jak powinna wygladac instrukcja ktoraa by mowila ze jezeli wynik dzielenia przez 2 jest liczba 0 to robi INSTRUKCJĘ 1, a jezeli 1 to INSTRUKCJĘ 2. Defice chodzi ci o to że powinno...
Zwróc uwagęna to, czas trwania stanu wysokiego na lini zegara SCK generowanego przez zmianę stanu lini PA1 jest bardzo krótki w porównaniu do trwania czasu niskiego: for (char a=0; a<8; a++) { PORTA &= ~0x80; // tu ustawianie w stan niski PORTA &= ~0x80; if((PINA & 0x20) == 0x20) Byte |= (0x80 >>...
Zastanów się nad użyciem petli while, bo w pierwszym programie w petli cały czas czyścisz i wyświetlasz coś, więc może tego nawet nie zobaczysz tak szybko będzie się zmieniać. Natomiast w drugim programie nic ci się nie wyświetli bo program wpadnie w nieskończonę petlę i już z niej nie wyjdzie, instrukcje po while(1); już się nie wykonają. Zrób tak....
Semafor to nie jest zwykla zmienna, tzn jest ale semafor powinien byc modyfikowany za pomoca instrukcji atomowych. W takim wypadku jak zrobiles nie masz 100% pewnosci w ktorym momencie tej petli while watek zostanie wywlaszczony na rzecz kolejnego przez co moze sie zdarzyc ze jeden watek ustawi pozycje kursora a drugi zapisze tam wlasny znak.
spoko juz poradzilem sobie :) rzeczywiscie z ta funkcja wyslij to byl niewypal.. wszystko mi sie mylilo przez nia ;) wogole wysylalem najmlodsze bity w odwrotnej kolejnosci.. juz jest ok.. zastanawiam sie teraz nad przesuwaniem wyswietlacza w momencie kiedy wyraz jest dluzszy od niego... probuje cos takiego ale nie wiem czy to najlepszy sposob... void...
Witam zastosowalem zew. kwarce 3,6864MHz umiescilem instrukcje zapalenia sie diody w obsludze przerwania od odebrania znaku w At8, i tutaj jest niby wszytko OKi ale jak umieszcze ta sama istrukcje : if(fodbznak) { fodbznak=0; switch (komenda) { case 'Z': case 'z': PORTC^=0x20; //ZAPAL DIODE break; } to nie dziala...
kolego wstawiłeś kawałek kodu gdzie używasz przerwań a w pętli głównej stosujesz aż cztery waity . Jeżeli stosujesz przerwania to unikaj waitów . Napisz co ile ma wystąpić przerwanie a będzie prościej. A niby gdzie w petli głównej? Kolego Zumek. Nie robilem tego tak jak piszesz bo znalazlem wiele postów w których jest tak jak napisałem zrobione. Nawet...
Witam, ....... a nie wiem jak powinienem napisać poszczególne "wątki" programu, żeby całość się wykonywała jednocześnie. Krótko mówiąc, czy pętla "blokuje" dalsze instrukcje? Bardzo proszę o nakierowanie mnie na właściwe rozwiązanie tego problemu, czytam oczywiście pomoc do BASCOM'a i różne wątki na Elektrodzie. Nie ma takkej mozlowosci aby dwie niezalezne...
Jezeli to jest Bascom to w helpie jest napisane ze readeeprom nie dziala w tego rodzaju petli !! Sposob realizacji odczytu/wpisu wiekszej ilosci danych jest tez tam podany. Sprawdza sie stare madre porzekadlo "Jesli nie wiesz jak cos dziala zajrzyj do instrukcji" Pozdro Dexter
Witam. Posiadam alarm samochodowy z uzkodzonymi pilotami. alarm ma okolo 3-4 lat. Kiedys go zakładałem ale nie posiadam dokumentacji :( . Jego cecha było to że miedzyinnymi ustawienia czasu otwarcia i zamykania centralnego zamka ustawiało sie przez przeciecie petli z przewodow wystajacych z obudowy. Było jeszcze jedno jakieś ustawienie rególowane w...
Niezły dowcip z tym 1000000 * NOP A nie słyszałeś nigdy o pętlach? Napisz sobie taką procedurkę: ;---------------------------------------... ; Podprogram opoznienia 1 s dla zegara 12 MHz ;---------------------------------------... DELAY: MOV R1,#250 ; licznik obiegow zewnetrznej petli LOOP1: MOV R0,#250 ; licznik obiegow...
$regfile = "m8def.dat" $crystal = 1000000 Config Portc = &B1111111 Portc = &B1111111 Config Portd = &B11111111 Portd = &B11111111 config pinb.1= input ' tego nie miales a bardzo wazne S1 Alias Pinb.1 Set Portb.1 Declare Sub Buz Declare Sub Buze Declare Sub X Dim Flaga As Bit Dim I As Byte Flaga = 0 Call X Do If S1 = 0 Then Waitms 45 If S1...
Cos takiego na szybko napisalem: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;definicje wgore equ p3.2 wdol equ p3.3 licznik equ 30h timerek0equ 31h ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; org 00h jmp start ;przeskakuje obszar wektorow przerwan org 50h start: mov licznik,#0h ;na dziendobry zeruje licznik main_loop: ;w tej petli sprawdzam tylko czy ktorys z...
Juz duzo zrozumialem, bardzo dziekuje. Jezeli chodzi o schemat polaczenia to wyglada on tak: https://obrazki.elektroda.pl/2368010400_... Byc moze wyjasnienie lezy wlasnie w tym braku odswiezania lcd po tym wejsciu w petle. A diode wstawilem sobie zeby obserwowac zachowanie ukladu w przypadku podpinania do +5V i deklarowania stanu LOW...
Witam Odczytuje stan portu za pomoca funkcji bit_is_clear(); Np.: unsigned char zmianna; while(1) { zmienna = bit_is_clear(PINB,PINB2); if(zmienna) { wykonaj(); } } PinB2 moze byc 0 i 1. W tych instrukcjach wykonaj() bedzie odpalone za kazdym przejsciem petli jezeli na PINB bedzie caly czas 0. Jak...
Tak wiem że należy odpalić timer na początku i zatrzymać na końcu i odczytać jego wartość.. no nic. Dziękuję za wypowiedzi tak czy inaczej.. Odp. kol. Draco była troche sarkastyczna, bo na tak prostą procedurę nikt, kto ma choć troche rozeznania w tej dziedzinie chyba (!) nie szuka pomocy. Mopzesz to zrobić na kilka sposobów: 1. mierzyc czas metodą...
To instalator nie odpowietrzył Ci podłogówki? Po pierwsze odpowietrzniki na belkach nie sa do odpowietrzania podłogówki tylko belki, po drugie podlogówke powinno sie odpowietrzać statycznie bez ciśnienia, bez włączonej pompy, każdy obieg po kolei, po trzecie rozdzielacz bez sensownej możliwości regulacji przepływu co moze skutkować przegrzaniem pomieszczeń....
Zmień myślenie o przerwaniach [syntax=c] volatile uint8_t BuforLED[4];// bufor wyswietlacza LED // konfiguracja przerwania tak jak miałeś // obsługa przerwania bez delayow ISR(TIMER1_COMPA_vect) { static uint8_t BiezacyLED = 0; PORTD|=0XeF; // zagas wszystko if(BiezacyLED) BiezacyLED--; else BiezacyLED = 3; // zaladuj do portu odpowiedzialnego za cyfrę...
Dalej robisz 'od konca' ,dobrze ,ze miales jako stale zakres od i do. Ogolnie to ma byc tak masz te stale, pobierasz w petli co pewien czas lub na wywloanie godz z pcf i porownujesz ja z ta stala wg instrukcji warunkowych ktore podalem ci wyzej. co do twojego programu to dalej tlumacze ,ze spelnia drugi warunek ale spelnia tez pierwszy, czyli nastapi...
na 8252 czyli rodzina '51. Martwi mnie troche czy biedactwo da sobie rade bo obsluga samego wyswietlacza to sporo kodu + obliczenia na floacie ktore to ma prezentowac. Nie wiem czy zegarek 12Mhz wystarczy do tego wszystkiego tym bardziej ze KS nie ma generatora znakow(ktorego i tak nie chcialem) wiec kazda cyferke i literke wyswietlam jako mape. Rozmiar...
Czesc, Linia FSL w Microblaze to tak naprawde dwie strony wewnetrznego FIFO. Jedna to master a druga strona tego FIFO to slave. Caly ten interface zostal zaprojektowany jako "szybka wymiana danych miedzy procesorem a czymkolwiek jest do niego podlaczone". Czyli jeden FSL to dwa interfejsy "master" i "slave" ktore daja Ci mozliwosc pisania i odczytywania...
Witam ponownie, po calym wczorajszym wieczorze zrobiłem postępy, funkję init zrobiłem zgodnie z wymaganiami sterownika ale i tak nie udało się do końca uruchomić, po uruchomieniu programu wyswietlacz gasnie (dokladnie to slabo się świecą wszystkie kwadraciki na obu linijkach) po wykonaniu drugiej instrukcji czyli petli for wysylającej trzy razy 0x3F...
A moze najprosciej tak.... sorki ze bez kodu, ale dawno nie programowalem, ale sluze algorytmem: WERSJA 1 1. Zrob kopie pliku do np serwis_tmp.xml (moze sie kiedys przydac jakis backup a tak kopia jak znalazl). * Kopie mozesz zrobic w petli (nie wiem czy dostepna jest PHP instrukcja kopiowania jakiegos pliku przez podawanie nazwy) while do... z warunkiem...
moduly i tak sa nic nie warte, wiec nawet na to nie patrzalem <: LPC2364 mozna kupic za ok 20zl netto. dlaczego sa szybsze: po pierwsze pracuja z wiekszym zegarkiem: - ARM7TDMI-S processor, running at up to 72 MHz. (atmele - do 55MHz) po drugie umozliwiaja prace z PELNA PREDKOSCIA z FLASHa (tak zwany Memory Acceleration Module), co jest niespotykane...
co sadzicie o yym sterowniku IB-Tron 309HD czy nada sie do kolektora?? prosze o opinie Tak jak najbardziej!!! Zakupiłem go około 2 tygodnie temu : sterownik + puszkę montażową bez 2 czujników temperatury które są po 25 zł. za sztukę. Czujniki te zastąpiłem termistorami 10kom, które kosztowały mnie w sklepie po 1,50zł za sztukę. Sterownik ten można...
Procki: Daty 0246 0304 Porty przetestowane, LEDki mrugaja :) LCD: Kupilem go jako HD44780, producent to SDEC z tym ze na stronie producenta nie moge znalezc gdzyz zaden nie odpowiada mojemu, troche to dziwne. Jednak wszystkie 16 * 2 maja jako kontrolel wpisane NT3881 OR EQUIVALENT z tego co na sieci znalazlem to ten kontroler jest kompatybilny z HD44870....
Delay musi być 1 bo z tego co pamiętam o programowaniu to jednostką podstawową jest 1ms. Żeby delay był 1s musisz wpisać czas 1000. Co wy tu za głupoty opowiadacie :D Zeby dobrac wartosc licznika czas musisz wiedziec ile cykli zegarowych zajmie procesorowi wykonanie jednej petli opozniajacej. Mozna podejrzec w pliku lss kod assembera i zobaczyc jak...
$regfile = "m16def.dat" $crystal = 8000000 Config Pinb.0 = Input Config Pinb.2 = Input P1 Alias Pinb.0 P2 Alias Pinb.2 Set Portb.0 Set Portb.2 Config Timer1 = Timer , Prescale = 256 On Timer1 1_sekunda Enable Timer1 Enable Interrupts Counter1 = 34286 Declare Sub Alarm Declare Sub Sys_off Dim Sekundy As Byte Dim Flaga1 As Bit Dim Flaga2 As...
Wymagania ciepla angielskich domow sa podobne, bo tak naprawde to wiekszosc domow w UK jest kompletnie nieocieplonych a mury sa na cegle grubosci, czyli 24 cm. Co to za roznica czy b edzie to 2, czy 12 petli, jesli suma dlugosci rur i ich opory przeplywu nie moga przekroczyc wydajnosci pompy. Po to sa konkretne parametry podane w instrukcji kotla. Poza...
Nie jestem specjalistą od rodziny 80C51, ale jedna rzecz mnie w tym programie zastanawia: napisałeś 17 cykli po 27us i rzeczywiście ładujesz akumulator liczbą 17. Ale jeśli instrukcja cpl oznacza negację poprzedniego stanu bitu na porcie (jak się domyślam), to jaki jest właściwie całkowity okres wykonania sekwencji ON-OFF czyli pełnego okresu przełączania...
witam. mam taki program: void main(void) { TMOD = 0x01; //timer0 - tryb1 16bit timer TH0 = 0xfe; //stan poczatkowy TL0 = 0xB0; //stan poczatkowy TF0 = 0; //kasowanie bitu przepelnienia timer0 ET0 = 1; //wlaczenie przerwania przepelnienia timer0 EA = 1; //wlaczenie przerwan TR0 =1; //start timer0 while(1) { ; } } i zachowuje mi sie to tak ze przerwania...
Witam, mam problem z umieszczaniem klamr, a właściwie odczytywanie ich w kodach z internetu. Mianowicie czasem widzę, że po warunkach nie ma znaków ,,{},, np. Proszę o dokładne wytłumaczenie tego co skomentowałem w tych krótkich programikach. Częściowe wyjaśnienie otrzymałeś wyżej, chociaż można je uzupełnic: W klamrach {...} umieszczasz instrukcję...
Chodzi mi o sposob aby jedna instrukcja zmienic ktores propery w calej tablicy klas. Przyklad: public class Chart { private Color kolor; public Color Kolor { get { return kolor; } set { kolor = value; } } } public class Moja { Chart[] wykresy; public Moja() { wykresy = new Chart[10]; for (int idx = 0; idx < wykresy.Length; idx++) wykresy[idx] = new...
Na podstawie tej jednej linijki kodu trudno powiedziec co chcesz robic w petli.Bit SPIF jest ustawiany gdy zostanie zakonczona transmisja co oznacza ze sterownik jest wolny i mozna zapisca do rejestru danych kolejna dana do wyslania. Przykładowo: while(!(S0SPSR & SPIF); S0SPDR=dana; pz
W C to by tak wyglądało: uint8_t clz(uint64_t x) { uint8_t n=0; if(x == 0) /* To niekoniecznie, troche trwa takie sprawdzanie, ale zeby sie tego pozbyc trzeba by zmodyfikowac petle ponizej, zeby sie nie 'wysypaly' */ return 64; /* Najpierw po calym bajcie */ while((x & 0xff00000000000000ULL) == 0) {/* dopoki...
...Alez jest oczywiste, podane przy kazdej instrukcji w jej opisie. Takze instrukcje warunkowe sa opisane np. ile cykli kiedy warunek jest spelniony a ile kiedy nie jest. Skoro wykonanie jakiejś instrukcji warunkowej zajmie np. 2 lub 3 cykle maszynowe , to to już dla mnie nie jest oczywiste - kwestia interpretacji :) Piotrek Rozumiem:) Jednak mozesz...
1. while((--uiCounter) && hbl)) { DelayUs(44); Clrwdt; } uicounter to bezznakowa liczba calkowita. Rozumiem, ze przed kazdym wykonaniem petli uiCounter bedzie dekrementowany. Petla sie wykonuje jezel uiCounter jest niezerowy i hbl jest niezerowe. Czyli wyjdzie z petli jesteli uiCounter lub hbl bedzie zerowe. Czy...
Bardzo spoko filmiki, szczegolnie ten trick z baterią. Dzięki bardzo :) Dodano po 5 [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #include <avr/pgmspace.h> //operacje na pamieci flash #include <util/delay.h> /* przydatne definicje pinów sterujących */ #define B1 (1<<PD0) #define A1 (1<<PD1) #define A2...
W jaki sposób? Wystąpi przerwanie, wykona się, timery wysteruja ledy. Po zakończeniu cyklu z led procek zaśnie na dobre, niby jak ma działać pętla? Linia czujnika jest w stanie niskim, a przerwanie od zbocza. Odpowiedz tyczyla awarii czujnika, kiedy to nie bedzie zbocza opadajacego. W twoim rozwiązaniu jest inaczej, warunek przerwania cały czas występuje...
Brak pętli głównej. Źle odczytujesz stan na pinach. Przejrzysz sobie jakiś kurs na AVR. Szukałem jakiegoś info o tej petli w google, ale nie mogę wyszukać..? O co dokładnie chodzi? I jak z odczytem stanu PIN-ów...? Czy zdefiniowałem je prawidłowo na początku programu? Domyślam się że chodzi o same warunki przy ifach i ich instrukcje.. Czy dobrze myślę?...
Osobicie uwazam ze troche latwiejszy ideowo jest Fast PWM. Jesli dobrze pamietam nazwe.. Taki tryb gdzie zawsze jest zwiekszana wartosc w liczniku i po najwiekszej mozliwej jest ustawiane 0. W tym bascomie masz jakies instrukcje przypisania do rejestrow...? Jesli tak to na poczatek mozesz uzyc tego co napisalem powyrzej. I po prostu wgrac sobie dla...
Mam taka prosta funkcje : void PA_write(unsigned int val) { PIOA->PIO_OER = PA_MASK; PIOA->PIO_CODR = 0xFFFF; PIOA->PIO_SODR = (val)&(0xFFFF); } PA_MASK to maska pierwszych 16 bitow Portu A. Kiedy wykonuje ta funkcje w petli to program czasami sie wyklada. Im wieksza ilosc wykonan petli tym wykladanie jest...
petli zwarcia petli efektow mierniki petli zwarcia
samsung np300e5a sterowniki obracanie obrazu rozszerzyć wolumin
transformator potrzeb własnych wymiana stopy tefal
Zwiększenie mocy silnika 3-fazowego asynchronicznego: metody i ograniczenia Plik za duży dla systemu plików FAT32 - rozwiązania