Tablica LUT jest prostą tablicą przekształcającą wszystkie wartości wejściowe na odpowiednie wartości wyjściowe. Jednak ową operację "zalewania w prawo" można zrealizować chociaż by przez przesunięcia w prawo i alternatywę: v |= (v >> 1); v |= (v >> 2); v |= (v >> 4);
Nie potrzeba masy operacji :D piszesz W C NIE W BASCOMIE :) Twoja funkcja pot2 powinna wygladac tak: unsigned char pot2(unsigned char potega) { return(1<<potęga); } I po co tu for(); ? unsigned char getb(unsigned char liczba,usnigned char bit) { if (liczba&(1<<bit)... return(1);...
1. Jak klucz będzie zawsze taki sam jak dana wejściowa, to wystarczy na wyjście dekodera wyprowadzić klucz, ale chyba nie o to chodziło. 2. Aby odtwarzać wartości danej wejściowej na wyjściu, musisz zagwarantować, że każdej wartości wejściowej kodera odpowiada inny kod na wyjściu. Dla przykładu bit podlegający operacji AND, jeżeli w kluczu będzie 0,...
Wybór rodziny zależy od zadania: 1. C51 (8-bitów) pozwala bezpośrednio wykonywać operacje na pojedynczych bitach, ale tych bitów jest niewiele (RAM i peryferia). Stale są w produkcji różne uC z rodziny C51, które mają indywidualnie adresowane bity - obszar RAM od 0x20 do 0x2F i każdy SFR z adresem 0bxxxxx000 (np. ACC, B, IPx), czyli nie spełnia warunku...
No oczywiście, ze jest proste: Zmienna.7 - dostęp do bitu 7 w zmiennej set Zmienna.5 - ustawienie jedynki na 5 bicie zmiennej. Jeśli odwrócisz logikę zapalania diod, to mogą Ci się przydać SHIFT i ROTATE
Witam W terminologi plc słowo ( word ) to po prostu zakres danych dokładnie 16 bitów czy 2 bajty. Operacje na bitach , bajtach czy wordach ( słowach ) są podstawą budowania programów na sterowniki . Przy zadeklarowaniu worda jako np integer staje się on liczbą całkowitą do np ustawienia czasu timera. Proponuję Koledze przyjrzeć się na początku ogólnie...
Tak, ma. Proponowałem Ci we wcześniejszym poście przeczytanie strony AvrSide. Gdybyś mnie posłuchał to wszystkiego byś się dowiedział. Jest tam taki fragmencik: Avr-gcc nie posiada składni bezpośredniego dostępu do bitów zmienna.numer_bitu. Operacje na bitach wykonujemy używając iloczynu i sumy bitowej, np. dla bajtu: zmienna |= _BV(numer_bitu); //...
Dodam jeszcze jedną cegiełkę: AVRy mają specjalne rozkazy do atomowych operacji na bitach rejestrów układów peryferyjnych. Umożliwiają one ustawienie i skasowanie pojedynczego bitu: - sbi - set bit - cbi - clear bit Jeśli więc kompilator jest na tyle zdolny, że potrafi z nich korzystać to operacje ustawiające (lub kasujące) pojedyncze bity rejestrów...
Nie podałeś ja są przechowywane te dowolne liczby (chyba myślałeś o zmiennych). Dla jednobajtowych (8-bit) użyteczny jest skutek uboczny rozkazu "movf x,x" w postaci ustawienia bitu Z w rejestrze stausowym jezeli ruszony rejestr ma wszystkie bity równe 0. Jeżeli zmienna jest wielobajtowa to wystarczy wykonać "or" na wszystkich jej bajtach i jeżeli w...
Proponuję zapomnieć o sbi i cbi . To jest dobre w assemblerze ale w C można się na tym przejechać (w zależności od wersji kompilatora). Na stronie # Avr-gcc nie posiada składni bezpośredniego dostępu do bitów zmienna.numer_bitu. Operacje na bitach wykonujemy używając iloczynu i sumy bitowej, np. dla bajtu: zmienna |= _BV(numer_bitu); // ustawienie bitu...
Takie operacje na bitach w strukturach nazywane są polami bitowymi. Jeżeli chcesz gdzieś zmieścić wartość 10 bitową, to przecież możesz przechowywać tę wartość w zmiennej o wielkości 16 bitów. Co do używania struktur z polami bitowymi i rzutowania na nie innych wartości, to zwróć uwagę, że są to elementy wrażliwe na kolejność przechowywania bajtów w...
Dla zapisu całego słowa do portu (w 16bitowych uK - 16bitów) nie ma znaczenia czy użyjesz LATx czy PORTx, ale wykonując operacje na bitach (pinach) portu lub nawet na całym porcie, typu: przesuwanie bitowe, dodawanie itp. to wykonywane jest to w sposób taki: odczyt-zmiana-zapis. Np. wykonując bezpośrednio po sobie rozkazy: bclr PORTB,1 bclr PORTB,2...
Nie znam akurat tego języka programowania ale mogę się wypowiedzieć jeśli dasz większy (o większej wartości) kwarc to pogram będzie szybciej działał może się nawet tak zdarzyć że program będzie ok i będzie działał ale nie zauważysz mrugania diody bo tak szybko będzie migała że zobaczysz tylko że ciągle świecenie radziłbym dać mniejszy niż większy kwarc....
Witam, Piszę program w asemblerze na architekturę MIPS, który ma tworzyć kwadrat a w nim okrąg o średnicy długości boku kwadratu używając algorytmu Bresenham'a i zapisać w pliku bmp. Prawie skończyłem, ale w żadne sposób nie wiem jak zrobić symetrię 8-io bitowego bajtu względem osi pionowej między 4 i 5 bitem (przy numeracji od 1) używając prostych...
od. 2 Rozumem że wybór tego procesora to kwestia prostego programatora (cena standardowego 89c51 x3 mnisza). Główną zaletą 89c51(89s8252) jest duża ilość literatury a sam procesor ma bardzo przydatne operacje na bitach które w innych procesorach rzadko występują. 0d 3. Rozumie że chodzi o wentylator z pctowy na prąd stały jeśli tak to za bardzo niema...
Aby zmienić jakiś bit w zmiennej np bleble na przeciwny trzeba go potraktować XORem w taki sposób: char bleble; bleble=bleble^0b00000010; ^ - operator XOR
No to mi teraz zagiąłeś parol. A co to jest w tym wzorze 32/8? skoro 1366/768 wymaga 240MB/s przepustowości to jaka jest przepustowość interfrejsu danych dla jednego banku pamięci? 32 bity na piksel / 8 bitów w bajcie - inaczej 4 bajty na 1 piksel przy 32 bitach na kolor (czyli popularne 24 bity a.k.a. 16+ milionów kolorów) - dlaczego 32 a nie 24 bity...
Uważam, że moderator ... Działania moderatorskie wykonuję na czerwono za pomocą odpowiednich funkcjonalności. Niestety raz się zdarzyło że na czerwono wyciąłeś tekst o "niewygodnym" środowisku programistycznym :D Ale nie o tym będę pisał. Napiszę jak to wyglądało u mnie. Ja zaczynałem od BASCOMa. I to BASCOMa '51. Były artykuły w EdW. Nie miałem jeszcze...
Na pewno na pierwszym miejscu jest zestaw instrukcji. Na przykład możliwość łatwego adresowania tablic obiektów o rozmiarze większym niż 1 bajt powiedzmy w ARM, czy w MC68020 i wyższych, lub na przykład wykonywanie operacji na 16 i więcej bitach za pomocą instrukcji operujących na danych ośmiobitowych (dodawanie, odejmowanie, porównanie itd. z propagacją...
Od bajtu CB zaczynają się wszystkie rozkazy Z-80 dotyczące operacji na bitach: ustawianie (SET), zerowanie (RES), testowanie (BIT) oraz przesywanie bitów (RR,RL,SR,SL i pochodne). Bajt DD dotyczy operacji na rejestrach IX, a FD na rejestrach IY. Stąd operacje na bitach rejestrów IX rozpoczynają się od DD CB, a na bitach rejestrów IY rozpoczynają się...
https://obrazki.elektroda.pl/3928983600_... Opiszę naprawę dość rzadkiej konsoli, polegającą na odtworzeniu schematu pierwowzoru, zaprojektowaniu i wykonaniu płyty głównej i dalszych krokach niezbędnych do przywrócenia jej życia i funkcjonalności, w których zastosowałem swoją nowatorską metodę. Będzie więc coś dla miłośników retro,...
co to robi: int foo(uint32_t a) { a = a ^ (a >> 16); a = a ^ (a >> 8); a = a ^ (a >> 4); a = a ^ (a >> 2); a = a ^ (a >> 1); return a & 1; } Wstępna ocena dostępnych informacji Przedstawiony kod to funkcja `foo`, która przyjmuje jako argument 32-bitową liczbę bez znaku `a` (`uint32_t`). Funkcja wykonuje szereg operacji bitowych na tej liczbie i zwraca...
Bitwait S1, set Przepisz proszę na CC++. Zakładam, że przez "Bitwait S1, set" masz na myśli instrukcję, która czeka na ustawienie (set) konkretnej wartości bitu, np. oczekiwanie na to, aż przycisk (oznaczony jako S1) zostanie naciśnięty. W językach niskiego poziomu, takich jak assembler, operacje na bitach są bardzo często wykorzystywane...
https://obrazki.elektroda.pl/7393623100_... Witajcie, dziś dla odmiany mała zabawa programistyczna. Przedstawię tu jeden prosty trik na oszczędzanie pamięci przy zapisie typu integer w języku C i nie będzie to po prostu rada w stylu "użyj typu 8-bitowego zamiast 32-bitowego". Pokazany tu typ sam dobierze sobie potrzebną ilość bajtów...
Witam wszystkich geniuszy ... potrzebuję napisać program w języku drabinkowym który po 5- krotnym wejściu 1 na wejście I0.0 wystawi 1 na wyjściu 3 ... dokładniej chodzi mi tu o operacje tylko ba bitach za pomocą wyrażeń matematycznych.
Podaj dokładne operacje do wykonania, ale generalnie używaj or/nor/and i przesunięcia. Zapomnij o typie bool i innych kombinacjach typowo językowych. Tylko jak to ma być windows nie RTOS to słabo widzę te 15-20msec...
Napisz zatem kod takiej procedury i zawrzyj w nim także funkcje protokołu 1wire (odczyt i zapis bitu oraz bajtu i.tp. z obsługą błędów) w avr gcc Implementacja procedury przeszukiwania magistrali 1-Wire oraz podstawowych funkcji protokołu w AVR GCC wymaga dość szczegółowego podejścia. Poniżej przedstawiam przykładowy kod, który zawiera podstawowe operacje...
Dziekuję bardzo za odpowiedzi ;) teraz czuje się o wiele lepiej w operacjach na bitach w C. Wszystko działa jako powinno. Zamykam temat.
Może np. tak :?: int x; char y; x=(x<<1)|(x>>15); //dla ROR zamień miejscami "sierżantów" ;) y=(y<<1)|(y>>7); Niestety bez "Carry" Piotr
Dla mnie programowanie mikrokontrolerów, zawsze nieodłącznie wiązało się z zastępowaniem sprzętu - robieniem w programie, tego co kiedyś robiły przerzutniki, bramki i tranzystory, takie rzeczy są z natury niskopoziomowe, niezależnie jaki język programowania wybierzemy. Języki wysokiego poziomu stworzono z myślą żeby to wszystko ukryć, żeby liczyć na...
Czy sekcje atomowe w ogóle są tu potrzebne. PortB jest w zakresie niskich adresów I/O więc operacje na pojedynczych bitach powinny zostać zoptymalizowane do SBI/CBI. Jak się zachowuje układ gdy wyłączysz te sekcje (czyli przestaniasz na chwilę blokować przerwania)?
W AVR masz na porcie 8 pinów, każdy może mieć stan 0 lub 1 i akurat do tego pasuje bajt, wartości 0-255 dziesiętnie, 0x0-0xFF w hex, 0b00000000-0b11111111 binarnie, czyli różne kombinacje zer i jedynek, najlepiej to widać binarnie co jest na porcie, np. 0b00011001. Jak do portu przypiszesz 1 to pozmieniasz wszystkie bity, bo 1 to 0b00000001. Po to są...
Witam Przymierzam się do zrobienia projektu na temat porównania sterownika VIPA 314ST z siemens 312C. Patrząc na ich parametry VIPA speed7: CENA: 4000zł -> 4 counters (100Khz) -> operacje na bitach 0.3-0.6 us -> operacje na słowach 1us -> timer/counter 12us -> 512kByte memory, expandable up to 2MByte memory, (50% program + 50% data) Semens 312c cena...
Możliwe, że tak, ale na razie nie bardzo rozumiem ten zapis. Znalazłem, że są to jakieś operacje na bitach ale jeszcze nie wiem jak to zinterpretować i użyć w projekcie. Czy mógłbyć jakoś rozwinąć, albo chcociaż podać czego szukać w języku Arduino?
Jak byś chciał tylko PB0 ustawić jako wejście to trzeba tak a właśnie że nie. Co prawda nie robi tego jak to myśli autor ale cały port jest wejścia i jest ok A właśnie, że tak. Autor nie rozumie jak działają operacje na bitach w C i podałem pierwszą linijkę gdzie jest to widoczne. Dlatego zdanie rozpocząłem od "m.in." WSZYSTKIE problemy w tym kodzie...
nic to nie dało. sprawdzałem czy operacje na bitach nie są w jakiś sposób blokowane i oczywiście nie są (przynajmniej w Dev-C++). Nie wiem co może być przyczyną. Dlaczego ten sam kod wykonuje się inaczej na innych urządzeniach?
Generalnie jest to coś w stylu wyświetlacza dot-matrix posiadającego kilka poziomów. Oczywiście głównym zagadnieniem jakie powinieneś zgłębić i wcześniej przećwiczyć na np: wyświetlaczach 7-segmentowych to multipleksowanie . Ponadto przydadzą Ci się operacje na bitach rejestrów poszczególnych portów mikrokontrolera.
mhy :D analizuję jeszcze operacje na bitach i w niektórych występuje np. PORTB jeżeli jest on zdefiniowany w ten sposób #define PORTB_SFR_IO8(0x18) to wynika z tego też, że ma on wartość 0x18 czyli przy przesunięciach bitowych mam używać takiego ciągu 00011000?
Mój sterownik na Atmega8 obsługuje 3 kanały PWM i i 3 ośmiobitowe rejestry '374 bazując jedynie na pętlach w których wykonują się operacje na bitach ze zmianą szybkości efektów i całość zajmuje niecałe 2kB pamięci. Odpowiedź jak inaczej już padła kilkakrotnie - użyj pętli.
O bit-bandingu szukaj w dokumentacji ARMa. Chodzi o to, że w pewnym obszarze SRAM lub IO są bity, które w innym obszarze mają własne adresy 32bitowe Cortex™-M3 Technical Reference Manual http://obrazki.elektroda.pl/6277145000_1... Normalnie w ARM operacje na poszczególnych bitach w komórkach pamięci lub w rejestrach peryferiów odbywają...
No nie jestem biegly w assemblerze, ale z tego co widze, sa tam odpowiednie operacje na bitach (moze moja wersja kompilatora tego nie obsluguje, sprawdze). Mam w takim razie jeszcze tylko jedno pytanie: czy przy deklaracji zmiennej typu pole bitowe jest niezbedne slowo struct? (jak u Ciebie struct biciki pole) czy wystarczy deklaracja biciki pole? Dzieki...
Zgadzam się z kol. (at)BlueDraco . Zastosowanie bitbandingu do GPIO jest bezsensowne szczególnie że masz odpowiednie rejestry do takich operacji. Czyli widać tutaj, że najpierw jest odczytywana wartość rejestru ODR, wykonywana jest operacja or, To nie jest OR co już Ci pisałem. Jest ot XOR - zupełnie inna operacja. Bez wzgledu jak ją bedziesz chciał...
Znalazłem takie coś: [syntax=c] #defineIIC_ADR_2482wr0b00110000 // Bit0-R/W, bit1-A0, bit2-A1 #defineIIC_ADR_2482rdIIC_ADR_2482wr+1 byte DS2482_OWSearch(); //======================================... byte DS2482_ver; byte DS2482_Init(); byte DS2482_Cfg( byte config ); byte DS2482_Wait_Busy( byte stop, word timeout ); void...
Zrobiłem ten program zupełnie od nowa, hmm nie mam pomysłu i działam na "czuja" w oparciu o zbliżone programy. Poniżej wrzucam kod programu, który... nie działa, ale myślę,że jestem blisko i muszę doczytać na temat MUX-ów , ktoś ma jakieś pomysły jak rozgryźć te MUX-y dla 6- ciu wejść (PC0 do PC5) ? Jesteś uparty i niczego się nie uczysz, gdyż nie...
Czy w ATmega8 da się wykonywać operacje na pojednczych bitach w rejestrach i/o, np TWCR? Polecenie SBI TWCR, 6 skutkuje błędem error: Operand 1 out of range: 0x36, a SBR TWCR, 6 error: Invalid register.
Z kolei standard C wymaga, by wszystkie operacje na typach krótszych od int były wykonywane tak, jak na typie int. Czyli sporo 8-bitowych operacji na 8-bitowych danych na AVR będzie wykonywanych na 16 bitach - niestety tak właśnie, Panie TMF. To jeden z wielu, wielu powodów, dla których 8-bitowce są wolniejsze - bo przy 8-bitowych danych muszą liczyć...
Ja nie chcę zmieniać szybkości transmisji, tylko odpowiednio opóźnić włącznie sygnału SCK względem danych. Matryca ma 8*8 diod led. Zasilanie wierszy jest włączane bezpośrednio z mikrokontrolera przez tranzystory. Kolumnami steruje rejestr przesuwający. Moim pomysłem było wysyłanie całego tekstu (dłuższego niż matryca) i włączanie/wyłączanie w odpowiednim...
m8se >> PORTB = 0x07; wpisuje na stan wysoki wszystkie trzy bity bo 7=00000111b. Pepisak wszystko fajnie tylko już pierwsza instrukcja w pętli (PORTB = 0x02;) wyłącza rezystor podciągający na wejściu. Musisz przeprowadzać operacje na bitach albo dodać zewnętrzny rezystor podciągający. Operacje bitowe wykonujesz makrami: Ustawianie bitu (1): PORTX|=_BV()...
Witam. Dzięki Łuk_F, takiej właśnie podpowiedzi potrzebowałem. Teraz widać czarno na białym, który bit i jak mi się zmieni na 1 i na 0. Wielkie dzięki. A jeszcze jedno naiwne pytanko jak zrobić w C/C++ kawałek który podsunie mi pomocniczą zmienna z np 1 na n-tej (zadanej) pozycji aby poddać to operacji OR?? Piszę,że w C/C++ ( żeby Tdv się już nie denerwował...
No cóż muszę przyznać, że masz sporo racji... Jako jedyny przedstawiłeś rozwiązanie na forum... zgadzam się, że potrzeba na to trochę czasu... Nie mam sterownika S7-300, a mój Step7 jest bez symulatora i na razie trudno mi przyjrzeć się temu co napisałeś. No cóż sarkazm to sprawa wieku, niestety w tym okresie jest trudniej robić operacje na bitach itp......
Witam, potrzebuje napisac szyfrowanie/deszyfrowanie rsa. Glownie chodzi o a^b%c. n = 1024 bity, e = 32 bity (0x10001) o ile operacje (+*-%/) na 1024 bitach nie sa ponad moje umiejetnosci, to wynik nieco przekracza zasoby mojego komputera (pamiec potrzebna (w bajtach)128*128*...*128, tak 65k razy). pisze w asemblerze x32 lub x64. lubie matematyke, lecz...
Zgadza się. Rozkazy, które tylko odczytują wartość z portu odczyrują ją bezpośrednio z lini portu (np MOV A,P2 JB P1.1,etykieta) , natomiast rozkazy które powodują odczytanie, ewentualna modyfikację i zapisanie danych spowrotem do portu pobierają informację z buforowego rejestru wyjściowego portu (ANL P2,#22h, INC P2, CPL P2.4) Nie ma znaczenia czy...
Temat nie najnowszy ale może się komuś przyda. Można zrobić to poprzez operacje na bitach bajtu w Bascom było to coś takiego: Dim Znak As Byte, ZnH As Byte, ZnL As Byte ZnH.7 = Znak.7 ZnH.6 = Znak.7 ZnH.5 = Znak.6 ZnH.4 = Znak.6 ZnH.3 = Znak.5 ZnH.2 = Znak.5 ZnH.1 = Znak.4 ZnH.0 = Znak.4 ZnL.7 = Znak.3 ZnL.6 = Znak.3 ZnL.5 = Znak.2 ZnL.4 = Znak.2 ZnL.3...
A mi się wydaje że o tym decyduje czas wykonania instrukcji. AVR do operacji na "rejestrach" 16-to bitowych potrzebuje więcej cykli co świadczy o tym że procesor coś musi modzic żeby na tych 16-tu bitach zaoperować. Z kolei 16-to bitowy procesor operujący na 8-miu bitach na 99% nie będzie wykonywał tych operacji szybciej niż operacji na 16-tu bitach....
A może by tak jakiegoś ARMa 7 z USB 2.0? Przeważnie mają obsługę DMA więc da się wykorzystać zalety szybszego transferu. ST ma najnowszę układy z rdzeniem Cortex M3 - cały kod może siedzieć we Flashu bo szybciej działa niż w innych ARMach flashowych, operacje na pojedynczych bitach itp. Poza tym są tanie, chyba tańsze od ATmega128. Może to będzie rozwiązanie...
Witam 1. Zastanów się nad: pamięcią na program, pamięcią na zmienne, pamięcią na dane o błędach i itp. 2. Musisz w jakiś sposób wgrać program ( drabinkę ) do pamięci program ( pewnie to będzie pamięć ram ). 3. Zastanów się w jaki sposób dekodować instrukcje czyli masz np styk normalnie otwarty musisz jakoś "wsiąść" zmienna z pamięci na zmienne ( ze...
Oj nie przejmuj sie co inni piszą. Kup taki jaki będzie w sklepie byle z serii AVR. Co do kompilatora to głownie tutaj chodzi o operacje na bitach ale jak złapiesz temat to będziesz wiedział co i gdzie. Ja jakoś nie zwróciłem uwagi na rożne wersje WinAVR. Powoli i małymi kroczkami i sam do wszystkiego dojdziesz. Najpierw sterowanie ledem, potem buzerek,...
dostalem projeckt typu : uklad na 74193 ma zliczac w cyklu 4,5,6,7,6,5,4,5,6,7.... zerowanie i zmiana kierunku pracy to nie jest problem bo wykryje to na wyjsciach ale jak wymyslic zeby liczyl od stanu 4 ??? będę wdzięczny za jakąś sugestię. : Ponieważ jest to uklad z asynchronicznym wpisem to wystarczy wpisywac mu 4 gdy uklad osiagnie stan 8 czyli...
pislaem kiedys program na Lpt w Delphi wyly tam wstawski z ASM ale jako cale słowo 8 bitowe jakie są polecenia odpowiadające tym: JB P0.1 JNB P0.1 chodzi mi konktetnie o operacje na bitach ??? jak zapisywac dodebrane słowa do pliku lub tablicy??? Dodano po 4 Czy moze jest jakis standardowy program zczystujący z poru lpt dane strobowany sygnałem zewnętrznym?...
Pomyliłem znaki, przepraszam Czy mogę mieć prośbę do ciebie, byś napisał pewny program, który wysyła takie bity jak powinien? Sprawdził bym czy trzeba jakieś tany podać na piny układu, mając chociaż pewność ze wysyłam mu prawidłowo bity. Tuner się uruchomił ale reaguje tylko na antenie AM Kod który mu wrzuciłem: Dodano po 2 Zaczynam się irytować. Żeby...
C jako taki nie był projektowany głównie dla mikrokontrolerów, więc operacje na bitach należy dokonywać używając przesunięć, iloczynu logicznego, sumy oraz ewentualnie if'ów. Przesunięcia mogą być kosztowne (brak barrel shift), chociaż dobrze napisane przeniesienie da się zoptymalizować do 3 instrukcji (skasowanie bitu, pominięcie jeśli bit źródłowy...
1. Tak, używasz tego samego avr-gcc. Ponieważ WinAVR jest już stary, proponuję zainstalować AS6, gdzie masz nowy toolchain. 2. Biblioteki są te same. 3. Rejestry są częściowo inne - są ładnie i sensownie poukładane, peryferia mają znacznie ciekawsze możliwości. Niemniej jest "znajomo". 4. Są same takie rzeczy. Np. koniec durnych fusebitów wybierających...
źródło wiem.onet.pl Architektura RISC, Reduced Instruction Set Computing/Computer, procesor RISC, RISC, wywodząca się z Berkeley (1985) koncepcja architektury procesora o ograniczonej liczbie krótkich (najwyżej dwusłowowych) rozkazów mających niewiele formatów i trybów adresowania, rozporządzającego znaczną liczbą rejestrów uniwersalnych (nawet powyżej...
No więc, aby wyliczyć wynik bramki AND należy użyć polecenia and , aby obliczyć wynik OR należy użyć or . Aby wyliczyć XOR należy użyć... no zgadnij czego :) A teraz coś trudniejszego: NAND = not (tab1 , a NOR = ... No to zadanie dla Ciebie :) Trzeba tylko zastrzec jedną rzecz - wszystkie podane operacje pracują równolegle na wszystkich bitach liczby...
A ja uważam że ta książka jest beznadziejna - kompletne dno! Po pierwsze, nie wiem po co ta książka próbuje służyć w połowie jako podręcznik języka C, skoro są na ten temat znacznie lepsze publikacje. Po drugie - stracone miejsce, które autor poświęcił na swoje wywody na temat języka C, mógł poświęcić na znacznie lepsze omówienie architektury i działania...
1. jest sens używania typów krótszych niż 32 bity w zmiennychstatycznych - zadeklarowanych na poziomie zewnętrznym oraz lokalnych z atrybutem static. Nie ma sensu w odniesieiu do danych automatycznych (zmiennych lokalnych bz atrybutu static). Pamięci zajmują mniej niż typ 32-bitowy, a operacje mogą być nieco wolniejsze niż na 32 bitach (ale nie zawsze)....
Naprawdę zakładasz, że ja tej zmiennej nigdzie nie nadaję wartości? :) Kod, który podałem to fragment pokazujący istotę problemu, miałem wrażenie, że jest to na tyle oczywiste, że nie muszę o tym jakoś szczególnie wyraźnie pisać... Ale do rzeczy: z tego, co udało mi się ustalić, problemy tutaj są dwa: Pierwszy to przypisanie wyniku takiej operacji logicznej...
Dzięki za pomoc, sprawdzę to w praktyce, nie z lenistwa wynika moja słabość a raczej z braku doświadczenia, przesiadam się z Bascoma i od miesiąca dopiero trawię dość trudny temat jakim jest programowanie AVR w C i wogóle C a że i mam mało czasu na wszystko jak każdy to chciałbym dalej analizować kody zawarte w różnych kursach :). Ten kod wydał mi się...
Zwykłe binarne dzielenie nierestytucyjne przy 10 bitach będzie prawdopodobnie prostsze, niż każda z tych kombinowanych metod - to w końcu tylko 8 obiegów pętli z porównaniem, przesunięciem i warunkowym odejmowaniem, tyle że te trzy operacje trzeba zrobić na 10 (czyli w praktyce 16) bitach. Gdyby toto miało przynajmniej 8-bitowe dzielenie, jak stary...
Chodzi mi po prostu oto by przyporządkować do zmiennej ABC operacje tylko na trzech portu D ustawionych jako wyjścia, trzy inne bity tego portu maja być wejściami z podciąganiem, aktualnie gdy ustawie porty tak: DDRD=0b00000111;// wyjścia PORTD=0b11100000;//wejścia z podciąganiem Gdy na przykład w programie PORTD = 0b10101010 to podciąganie się wyłącza....
1.Ustawiasz dobrze odpowiednie DDR pinów na wejścia/wyjścia? 2.Wartość pinów odczytujesz z PINA (dla portu A) itd. a nie PORTA. W PORTA ustawiasz podciąganie wejścia do VCC (przez rezystor rzędu 50k-80k bodajże) - używa się tego gdy chcesz mieć ustawiony jakiś stan domyślny na linii jak np. urządzenie zewnętrzne nie jest połączone, albo wartością domyślną...
Stricte tablica miałaby sens gdyby trzeba było rozróżniać wiele wartości trudnych do obliczenia. Tutaj wystarczy Ci zrobić procedurę sprawdzającą, czy wartość jest większa niż ileś i w zależności od tego zwracająca wartość. Poniżej jest propozycja rozwiązania w C, nie jest to gotowe rozwiązanie a szkic idei. Jeżeli nie potrzebujesz bardzo dokładnego...
Przecież przetworzenie liczby NKB(BIN) do BCD jest bardzo proste. Dla liczb 8bitowych: Jeśli wartość na 4 młodszych bitach jest większa niż 9 to dodajemy do nich 6. Jeśli 4 starsze bity są większe niż 9 to dodajemy do nich 6. Powstałe przeniesienie "1" z 7 bitu (nadmiar) inforumje o przekroczeniu zakresu liczby BCD 8 bit. Np liczba 0x0F - 15 w BIN 8...
To właściwie jest oddzielna funkcja, którą należy okresowo wywoływać. Albo przez pooling, albo z przerwania generowanego przez encoder i wtedy można ją jeszcze dodatkowo uprościć. Co do operacji, którą pokazałeś - w moim programiezmienna EncoderState na starszych bitach przechowuje inne wartości, np. stan przycisku enkodera itd. Stąd takie nieco dziwne...
Dało by rade stworzyć zmienna float na 16 bitach to tzn np 1 znaku 5 wykładnika i 10 na mantysę. uzyskał bym zakres od -4mld do 4mld z dokładnością mantysy do 0.0005 Czy muszę coś takiego stworzyć sam w asemblerze zdefiniować operacje w asemblerze i dopiero te gotowe funkcje wykorzystać np podczas pisania czegoś w C Widziałem to: http://www.elektroda.pl/rtvforum/topic11...
(at)Morpheusss pewnie masz racje, a co do bibliotek to przebuilduj ich 60+ MB :) tyle czy sama rekompilacja dla 64 zwiększa wydajnosć aplikacji?Czy trzeba kod "przystosować" do fjuczerów 64 bit? Zazwyczaj zmniejsza wydajność i zwiększa zapotrzebowanie na pamięć. Jedynie w szczególnych przypadkach np. operacje na liczbach zmienno-przecinkowych podwójnej...
; **** zapisz/odczytaj rejestr **** ; Funkcje zapisz i odczytaj rejestru CC1000. Adres rejestru powinien przed ; wywołaniem znaleźć się w rejestrze adres, oraz dane powinny się znaleźć lub ; znajdą się w rejestrze dane. ; UWAGA ; ; funkcja nie zabezpiecza sreg ; adres jest w 7 dolnych bitach rejestru adres ; zakłada także, że pale jest Hi przed wywołaniem...
Tak na początek: 1. long to raptem 32-bitowa zmienna. Jako, że w ogóle pracujemy w zbiorze liczb dodatnich, to od razu bym skorzystał z unsigned, co spowoduje podwojenie dostępnego zakresu. Korzystam z long ale aplikacja jest tworzona w CodeBlocks i wybrałem tryb 64 bitowy. Także to jest do zmiany na unsigned long long Parametr -m64 dla kompilatora...
a jak chcesz przesunac zmienna opisana na 8 bitach o 24 bity? Oczywista sprawa, ze wyjdzie z tego zero. Drobna uwaga. Operacje arytmetyczne zasadniczo wykonują się na typie podstawowym int/uint, który jest domyślnie (na AVR) 16-bitowy. W przypadku zapisu tmp8<<24, gdzie tmp8 jest typu uint8_t, kompilator najpierw zrzutuje zmienną na typ uint...
Dołączę się do tematu, żeby nie zaśmiecać forum. Mam pytanie co do PCFa. Korzystałem z przykładu i był tam taki kod przy odczycie godzin (AVR-GCC, Atmega128): #define PCF_MASKA 0xff00; ... temp2 = PCF_Read(PCF_HOUR)&0b11000000; if ((temp2&PCF_ERR_MSK) != 0) return temp2; ... I chodzi tu o to, że do temp2 odczytywana jest godzina...
Właśnie mniej więcej do takiego samego wniosku doszedłem 3 posty wyżej, tylko ty to bardziej fachowo ująłeś. Zgadzam się z tobą w całej rozciągłości że próba zastosowania jakiegoś zewnętrznego przetwornika dałaby jeszcze lepsze hmm dużo lepsze rezultaty. Szczególnie 16-bitowego. Poniżej obrazek z odtwarzanej czystej sinusoidy 8kHz - widać że jest nieco...
Wydaje mi się że można by to rozwiązać za pomocą układów UCY 74181. Jest to tzw. ALU czyli jednostka arytmetyczno logiczna, która wykonuje różne operacje np. mnożenie, dodawanie. Tylko niestety odbywa się to na 4 bitach a nie na 8. Również można chyba wykorzystać sumatory 4 bitowe UCY 7483. Popatrz na noty aplikacyjne wyzej wymienionych ukladow, moze...
chcę go podłączyć do płytki Nucleo 144, a tam magistralą steruje każdy inny pin W Nucleo jest tak samo jak w AVR tylko porty są 16-bitowe i jeśli coś jeszcze wisi na pozostałych bitach to trzeba odpowiednio maskować, lub stosować zapis bajtowy do rejestrów GPIO. Ale teraz widzę Twój kłopot jak spojrzałem do dokumentacji Nukleo144. Przypuszczam że chodzi...
Potrzebuje napisac program w asemblerze 8086 wykonujacy operacje dzielenia na liczbach 5 bajtowych w kodzie BCD. Wartość zero w starszych bitach pierwszego bajtu odpowiada znakowi plus, a wartość jeden odpowiada minusowi ( np. '0000000200'== 200, '1000000353' == -353). Dane wprowadzane z klawiatury (zawsze po 10 znaków). Wyjście z programu po odpowiedzi...
1. Chciałbym pomóc, ale nie bardzo rozumiem problem. Na przedstawionych zrzutach niepotrzebnie nadużywasz wyjść open connector (X). Niektóre bloczki można połączyć w szereg i zaoszczędzić na wyjściach X, bo ich liczba jest ograniczona. Instrukcji operujących na słowach nie ma jako takich - trzeba na bitach lub arytmetyce. Jeśli chodzi o problem, że...
rozkazów BZG blokada zegara( to ten nieszczęsny BCZ) przy braku systemu operacyjnego zegar generuje przerwania mogące zakłócić diagnostykę. DGN ? RTI to chyba przerwania od urz. zewnętrznych WZS to chyba wskaźniki sumatora? GŁ głośnik ZPŁ zerowanie pułapki - na jednym z pakietów znajduje się licznik na przerzutnikach bistabilnych licznik z chyba 4 (8...
Probuję oprogramować kość DDS (AD9835); częstość generowanego sygnału programuje się wysyłając cztery razy 16bitowe słowa, w każdym słowie jest 8 bitów tworzących 32 bitowe słowo określające bezpośrednio częstość. Tego za bardzo nie rozumiem. 16-bitowe słowo, które ma 8 bitów? Czy chodzi o to, że poza danymi o częstotliwości wysyłane jest coś jeszcze,...
dziel FFFFFFFFFFFFF000 przez 00000AAAAAAAAAA - ucierpi nieco dokładność, ale jest to do wykonania na 64 bitach ALU. Wynik przesuń o 6 w prawo (otrzymasz 6 miejsc binarnych po przecinku, oczywiście przesunięcia dokonujesz modyfikując cechę wyniku). Generalnie dzielenie np liczb 32 bitowych na FPU odbywa się w rzeczywistości z wykorzystaniem 96 bitów,...
Dobra, wracam do pracy (przerwa wakacyjna). Kurde, jak tak dalej pójdzie to zrobię tego kompa za rok. No ale różnie bywa z czasem. Wczoraj napisałem biblioteki do PCF8583 i własne funkcje dla TWI. Między przerwami w "robocie" wymieniłem LCD, teraz mam 240x128, będzie co wyświetlić :) Oczywiście LCD jest na T6963C, więc biblioteki zostają takie jakie...
Hunterhouse, znow pytanko do Ciebie :) Tym razem chodzi mi juz o sama funkcje obliczajaca DFT Dft: For K = 1 To 15 Rex_t = 0 Imx_t = 0 For I = 0 To 31 Beta = I * K Beta = Beta And 31 // dlaczego Beta And 31 ??? Tmp_s = Sinus(beta + 1) * Dane(i + 1) Tmp_c = Sinus(beta + 9) * Dane(i + 1) // dlaczego tutaj zaczynasz tabele od (beta +9 ) ?? i co konkretnie...
Ok dzięki te operacje na bitach (a w zasadzie bajtach) już rozumiem. Ta linia do masy układu rzeczywiście nie jest konieczna. 1. Co do wiatraczka to rzeczywiście pomyliłem kierunek strzałki. Czy tranzystor BD139 byłby ok? Może macie lepszy pomysł. Nad wygładzeniem zasilania dla wiatraczka też się zastanawiałem ale w tym układzie chyba nieda się tego...
Ok, zatem chodzi o wygenerowanie 24 sygnałów o czasie trwania od 1 do 2 ms, z cyklem całości 20 ms. 1. Timer 0 zgłasza przerwanie co 2,5 ms. Jego ISR powinna: - zapamiętać SREG (o ile kompilator tego nie robi sam, ale chyba nie) - ustawić 1 na odpowiednich bitach portów A, B, C - ustawić rejestry OCRxx pozostałych na odpowiednie wartości (z tablicy)...
Jeżeli chodzi o tego typu wyrażenia: PORTC = (PORTC&0xf0) | (instr&0x0f); to radzilbym calość po znaku '=' ograniczyć nawiasami, bo tak to jak dla mnie najpierw na port wpisujesz 0xf0 a dopiero pózniej są wykonywane operacje logiczne. Zrób tak: PORTC = ((PORTC&0xf0) | (instr&0x0f)); i testuj czy...
Witam postanowilem zalozyc ten temat dlatego ze staram sie przejsc z Bascoma /na ktorym nie mozna polegac ;/ / na jezyk C Oczywiscie to dotyczy programowania procesorow AVR... Przez ostatni tydzien kompletowalem literature przyklady i inne potrzebne wiadomosci do rozpoczecia nauki... Wszystko co robie obecnie to "proba" zrozumienia ogolnie jak w tym...
Szanowni Panowie, Zrobiłem oto takiego testa... :) Napisałem prościusieńki program który sprawdza dwa warianty manipulacji na danych z rejestru AD0GDR Wariant pierwszy: Wyłuskiwanie poszczególnych danych z rejestru przy pomocy operacji bitowych sformułowanych za pomocą makrodefinicji. Wariant drugi: Wyłuskiwanie poszczególnych danych z rejestru przy...
Nawet jeśli to 100 MHz jest w środku to ilość kondensatorów odsprzęgających, wymogi co do ich położenia, czy płaszczyzna masy pod MCU powodują, że tak pięknie to nie jest. Z drugiej strony, można się zastanowić, a co jeśli chciałbym to wyprowadzić i sterować z MCU układami zewnętrznymi? Już muszę myśleć jak ograniczyć szybkości narastania/opadania zboczy,...
gufiak pytanie... Co daje taki zapis...? Na mój rozum jeżeli wynik podstawiam do zmiennej określonego typu to jest on automatycznie do takiego konwertowany... Tu akurat dopuszczalne jest rzutowanie niejawne. Tyle, że po paru latach programowania w C wyrobiłem u siebie nawyk rzutowania jawnego gdzie się da, a przynajmniej tam, gdzie wykonuję operacje...
Fantom, doprawdy nie wiem co o tobie myśleć. Wdałeś się w bezsensowna dyskusję, nie mając zielonego pojącia o czym piszesz i jednocześnie bezpodstawnie robiąc z siebie autorytet. Wygląda na to, że nie zrozumiałeś ani słowa z tego o czym "rozmawialiśmy". Chciałem juz uciąć ta bezsensowną pogadankię i oszczędzić ci robienia z siebie pośmiewiska. To może...
\udało mi się znaleźć w temacie może kogoś zainteresuje... [url=http://www.univ.rzeszow.pl/studenci... do pobrania\ - KOMPUTERY KWANTOWE - W kluczowych momentach historii postęp cywilizacji wiązał się z odkryciem przez człowieka kolejnych sposobów wykorzystania natury. Gdy człowiek - myśliwy nauczył się uprawiać ziemie...
Ale jest EOR, który robi za XOR ;)
operacje matematyczne operacje logiczne operacje bitowe
szyfrowana partycja odzyskać windows uprawni monitor mignie
odkurzacz electrolux ultra silencer instrukcja telewizorów thomson
Audi A3 1.8T: Siła dokręcania głowicy i procedura Renault Vel Satis 2.2 dCi – brak napięcia na przewodzie wentylatora nawiewu pod schowkiem