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....
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...
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...
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
https://obrazki.elektroda.pl/8536930800_... Witam Szanownych Kolegów W kolejnej publikacji chciałbym rozwinąć temat firmowego protokołu diagnostycznego ALDL o prędkości 160 baud. Był on stosowany w epoce OBD1, między innymi w starszych modelach Opla (np. w Kadecie), a za sprawą "zapożyczenia" rozwiązań GM trafił również do Polonezów....
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
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)?
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...
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ł...
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.
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...
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...
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ć...
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ł...
operacje logiczne operacje matematyczne operacje bitowe
szukać płyta philips dynamika utworu wymiana toner
yamaha rn800a stabilizator szeregowo
Komunikat "Funkcja tymczasowo niedostępna" na telewizorze LG - jak rozwiązać? Jak wyjąć zablokowaną kapsułkę z ekspresu Delta