Np. testuj każdy przycisk osobno i zapalaj każdą diodę osobno wg stanu przycisku. Wcześniej zdefiniuj maski bitowe przycisków i diod. if (inputB & PRZYCISK1) PORTA |= LED1; else PORTA &= ~LED1;
Przy aktualnym nagłówku nie wystarczy (patrz MSDN biBitCount ). Można zastosować inny nagłówek (BITMAPV4HEADER, BITMAPV5HEADER) i zdefiniować w nim maski bitowe pasujące do RGB565 albo skonwertować dane do RGB555 (tutaj i tak są odczytywane programowo, więc nie będzie to wieki koszt).
To jest konwersja na ASCII, np. do wyświetlenia na LCD lub terminalu. Pytania, które zadajesz, nie dotyczą mikrokontrolerów, a podstaw języka C. p jest zmienną wskaźnikową, czyli adresową. *p ++ = x - to zapis x pod adres zawarty w p i zwiększenie tego adresu, tak, aby p wskazywała następny bajt bufora. Jedynka w apostrofach - to znak ASCII - cyfra...
Do czego maja sluzyc maski bitowe?? czy switch(PINC) { case 1: { }; break; case 9: { }; break; case 17: { }; break; } nie wystarcza?... Jesli chcesz uzaleznic wykonywanie kodu od konkretnego pinu.... if (PINC&1) //gdy ustawiony jest bit0 { }; if (PINC&9) //ustawione...
W poprzedniej wypowiedzi dokonałem poprawek w przykładowym kodzie. Tak, to już jest kiedy Elektrodę traktuje się jako przerywnik przy pracy. Kwestią otwartą jest nadal testowanie wybranego bitu, lub bitów. 1. Jak to wykonywać poprawnie testowanie jednego bitu ? Zależy to od danej sytuacji. W trakcie testowania pojedynczego bitu w PINx z pominięciem...
Witam, Kolega za dużo kombinuje...bierzemy bajt do konwersji i rozdzielamy na dwie 4 bitowe wartości (używamy do tego celu maski zmienna = zmienna&maska), następnie konwertujesz dwa półbajty do ASCII i po problemie :) Sama konwersja też jest dość prosta, sprawdzasz czy pół bajt mniejszy od 10 jeśli tak to robisz logiczny or z 0x30h jeśli większy lub...
https://obrazki.elektroda.pl/5220229400_... Witajcie, przedstawię tu od 0 rozpoznanie wyprowadzeń, podłączenie, zaprogramowanie i uruchomienie z Arduino wyświetlacza LCD z elektrośmieci. Omawiany tu wyświetlacz pochodzi z pralki Amica AWSN12DA i posiada sterownik BL55066 do którego nie znalazłem biblioteki, tylko samą notę katalogową....
Zobacz na maski bitowe w makrach LED_0_ON i LED_0_OFF - są takie same. On kasuje bit 6, pozostałe nie zmieniając, z kolei off ustawia wszystkie bity z wyjątkiem b6. W efekcie nic się na porcie nie zmienia.
AVE... Odsyłasz do noty bo nie potrafisz napisać programu, który osiągnie max bez DMA. Czy tak ciężko przyznać, że nie masz racji? Jak napisać taki program napisałem w spoilerach. Jeśli nie możesz tego odczytać, to może powinieneś iść do okulisty? Co do GPIO to w przypadku PIC i XC8 nóżką manipulować można na kilka sposobów: 1. Można bawić się w maski...
Standardowa odpowiedź: brak atrybutu volatile. A tak poza tym, program napisany fatalnie. Masz mnóstwo zmiennych, które de facto są stałymi, więc nie powinny być zmiennymi. Masz też zamiłowanie do procedur zawierających jedną instrukcję. Twój program większość czasu spędza na wywoływaniu i powrotach z procedur. Proste maski bitowe przekazujesz przez...
Pętla for w C działa tak, jak while. Zapis for (a; b; c) to to samo co: a; while (b) { ... c; } Zdefiniuj jako stałe preprocesora numery bitów LED i przycisków i używaj ich w kodzie - te maski bitowe nie są czytelne, a ich zmiana wymaga edycji wielu linii kodu.
możesz zastosować pętlę, np tak: [syntax=c] static const uint8_t rowsel[] = { tu wpisujesz maski bitowe wyboru wierszy } for (....) { PORTx |= maska_wyłączenia_wierszy; PORTx &= rowsel[i]; ... } [/syntax] Na AVR wypadałoby w deklaracji tablicy użyć jeszcze zaklęcia PROGMEM, a przy dostępie do niej pseudofunkcji dostępu do pamięci programu. Szczęśliwie...
Po pierwsze, nie różnicuj priorytetów przerwań i nie zagnieżdżaj ich. Po drugie, nie używaj opóźnień w przerwaniach. Po trzecie, nie szyfruj stałych w programie - maski bitowe zapisuj binarnie lub szesnastkowo, a nie dziesiętnie. Po czwarte, używaj stałych symbolicznych z plików nagłówkowych. Po piąte, ARM7 jest ciut zdezaktualizowany, a jak już zauważyłeś,...
Freddie mówiłeś, że nie można czekać na zerowanie tak jak wcześniej próbowałem więc tu czekam inaczej. Czy teraz jest ok? Niestety... Dla uzmysłowienia Twojego problemu, miej świadomość, że ADC_CR2_RSTCAL i ADC_CR2_CAL to są maski bitowe o stałej wartości, przykładowo (1 << 5) i (1 << 8). Innymi słowy Twoje pętle to obecnie po prostu while...
Tak jak napisał kolega wyżej... Jeżeli potrzeba więcej niż jeden bit to przez maskę bitowa zmienna = portA & 0x1F
Witam. Wg helpa do Bascom AVR mamy coś takiego: http://obrazki.elektroda.net/94_12546560... Tymczasem u mnie kod $regfile = "m16def.DAT" $crystal = 1843200 $baud = 4800 Dim Adres As Byte Adres = 63 And 19 Print Adres End zwraca w symulatorze wartość 19, czyli tą która zostaje wpisana po operatorze and. Dlaczego tak, i w takim razie...
GPIO_ODR_ODR15 to maska bitowa, a nie numer bitu - podejrzyj sam jaką ma wartość. 4\/3!!
Właśnie do tego wczoraj w nocy doszedłem i jak zmieniłem na inną klase to od razu zaczeło działa a maski były 24 bitowe
Maski bitowe bedące wskaźnikami, a więc (mogę PAscalem? łatwiej mi się myśli): const LLength=64; //podajesz najstarszy znaczący bit przepisywanej liczby var InputMask, OutputMask: byte; OutputPtr: Longint; begin InputMask:=LLength; OutputMask:=128; //10000000b OutputPtr:=0; repeat OutTable[OutputPtr]:=0; if (licza...
Tyle pisania i mało konkretów... Po pierwsze nie tworzyłbym żadnego nowego standardu tylko użył jakiejś sprawdzonej metody - to czy będziesz miał mapę bitowa skompresowana uniwersalnym algorytmem np deflate https://en.wikipedia.org/wiki/DEFLATE#De... czy użyjesz dedykowanego formatu np PNG (który tez używa deflate) http://ysflight.in.coocan.jp/programming...
Przepraszam, ale co zmienia czy zastosuję pole bitowe, czy maski dla problemu endianess? Jak mi się zmieni endian to jedno i drugie się wysypie. Stąd jeśli coś ma być przenoszone pomiędzy platformami (co IMHO w tym przypadku jest bez sensu*) to trzeba to uniwersalnie napisać, są w bibliotece standardowej nagłówki umożliwiające uniezależnienie się od...
Układ ten adresowanie bitowe posiada tylko na porcie PC, pozostałe musisz ustawiac albo kasować na zasadach sumy logicznej maski albo iloczynu negacji maski.
Dla 'lpt' dostępne są jeszcze dwa dodatkowe ośmiobitowe rejestry pod adresami 'BASEPORT + 1' i 'BASEPORT + 2'. Odczytujesz je tak samo( możesz również pisać na sygnały wyjściowe) jak 'BASEPORT' czyli wynik_1 = inb(BASEPORT + 1); wynik_2 = inb(BASEPORT + 2); znaczenie bitów rejestrów: !przy pinach z '~' stan napięcia na pinie jest negacją...
Serdeczne dzięki, poniżej cały, działający kod: PORTB = (PORTB-1&0b11111000)|(... http://obrazki.elektroda.pl/4233538800_1... Niech zostanie dla następnych :-)
<< i >> to przesuniecia bitowe. I tak po pierwsze np. PB0 to stała o wartości 0, PB6 to stała o wartości 6 itd. Przesuniecia bitowe działają tak: 0b00001100<<2 da nam 0b00110000 0b10000001<<1 da nam 0b00000010 0b01000001>>1 da nam 0b00100000 itd. Tworzy to zatem maski bitów które w połączeniu z negacjami i innymi operacjami...
Wystarczy po stronie nadajnika rozbić 16bit na dwie liczby 8bit: Na tym etapie nauki warto dodatkowo zaznajomić się pojęciem unii, która pozwoli pozbyć się dodatkowych przesunięć i maskowań. Na tak prostym przypadku to może jeszcze przerost formy nad treścią, ale łatwo będzie można załapać o co chodzi, a później do większej porcji danych przyda się...
Z innego forum: Jako że nikt jeszcze nie opisał możliwości zmiany tapety na całym ekranie, co jak wiadomo w S60v3 było tylko możliwe tworząc nowy temat, postanowiłem opisać jak można szybko zmieniać tapety bez zmiany tematów. Nie jest to rozwiązanie idealne, ale i tak można uzyskać ciekawe efekty. Metoda ma ten minus że najlepiej widać to w tematach...
Poszczególne bity tego rejestru pozwalają ci "zamaskować" określone przerwania Wyjaśnienie terminu maska bitowa znajdziesz np na Wikipedii [url=http://en.wikipedia.org/wiki/Mask_%...
Cześć Od razu nadmienię, że jestem w tym początkujący. Posiadam mikrokontroler STM32F100C4T6B oraz moduł GY-50 L3G4200D. Próbuję nawiązać połączenie za pomocą interfejsu I2C i wyświetlić informację na komputerze kominukując się po UART, który na pewno działa. Jeżeli chodzi o połączenie to jestem na 99% pewny, że jest dobrze. Korzystam z programu STM32CubeMX...
Skoro są wyzerowane, to widać powinny być, jakie to ma znaczenie? Skoro wpisujesz coś do tego rejestru to i tak musisz stan tych bitów ustalić... A sprawdzenie można zrobić tak jak w przypadku portów, tyle, że zamiast UCSZ1, które zawiera tylko numer bitu należy zastosować (1<<UCSZ1) lub _BV(UCSZ1), żeby zamienić nr bitu na maskę bitową.
Dzień dobry. Zbudowałem miernik odległości w oparciu o ATtiny2313, czujnik HC-SR04 i wyświetlacz LED 7 segmentowy 4 cyfrowy, wspólna katoda. Program napisany w języku C w Atmel Studio. Problem polega na tym, że układ działa poprawnie tylko do odległości 70 cm. Powyżej zaczynają migać segmenty, na cyfrze jedności i dziesiątek, które nie powinny się zapalać....
Klasyczny błąd obsługi wyświetlacza plus kilka innych błędów, które popełniłeś w tym kodzie dają razem takei właśnie efekty. "Klasyczny błąd obsługi wyświetlacza" polega na tym, że przed wystawieniem obrazu cyfry nie wyłączasz poprzedniej. Powinno być tak: - wyłącz cyfrę - podaj segmenty dla nowej - włącz nową cyfrę Nie potrzbujesz też żadnych if-then-else...
A co to takiego? # define LED_RED _BV(3) Makro _BV(x) zwraca wartość pinu a Ty chcesz zdefiniować jego numer. Wystarczy więc po prostu: #define LED_RED3 Podobnie w pozostałych przypadkach. Przecież zastosowanie tam _BV jest całkowicie poprawne. Potrzebuje maskę bitową do funkcji sterujących LEDami, a nie nr pinu.
Skoro sam napisałeś ten program, to czemu innych pytasz co oznaczają 0x7F i 0x80? Śmiem wątpić w twoje autorstwo, ale odpowiem: - 0x7F to maska bitowa, w której jedyny skasowany bit to bit 7. 0x80 to maska bitowa, w której jedyny ustawiony bit to bit 7. O pojęciu maski, bitu i bajtu nie będę pisał. - Maski te są wykorzystywane przy ustawianiu odpowiedniego...
setb p1.2 Radzę zapoznać się lepiej z architekturą 8051 - najlepiej z dokumentacji Philipsa (NXP): [url=http://www.nxp.com/acrobat_download... [url=http://www.nxp.com/acrobat_download... Guide + lista rozkazów [url=http://www.nxp.com/acrobat_download...
Czytałem podręcznik XC8 C Compiler User's Guide, również punkty poświęcone strukturom i wskaźnikom, oraz polom bitowym i jakoś mnie to nie oświeciło w kwestii definiowania prototypu funkcji z aliasami definiowanymi gdzieś indziej, bo na tym polega mój problem. Bardziej przydatny byłby podręcznik C, a nie jakiejś konkretnej implementacji w postaci kompilatora....
Oczywiście RCC_AHBENR_GPIOEEN nie mam A niby czemu? Nazwy bitów są zdefiniowane w pliku nagłówkowym i przepisywanie tego na nowo nie ma sensu ;) Nie mówię o korzystaniu z funkcji biblioteki! Tylko z pliku nagłówkowego mikrokontrolera. Bit IOPEEN to 21-szy bit w rejestrze RCC_AHBENR, stąd maska bitowa: 1<<21 = 2097152 = 0x200000. Swoją drogą zwróć...
Nie wiem czy tak samo rozumiemy "kodować bitowo"? Mam na myśli tzn maskę bitową 8 bitów czy 4 bitów czyli 4 lub 2 pary 2 bitowych wartości, pozwala zapisać 4 x 4 lub 8 x 4 różnych wartości.
void oznacza że funkcja nie zwraca żadnej wartości. Zmienna i to licznik pętli, tak jak w kodach wyżej, z każdym wykonaniem pętli jest zwiększana i dzięki temu kolejne cyfry rozwinięcia są zapisywane na kojelnych miejscach w tablicy. Wyrażenie 'break' kończy pętle, tu użyte jest gdy liczba jest mniejsza od 2 (wtedy nie trzeba jej specjalnie zamieniać...
Maska TCP/IP dla sieci wewnętrznej nie może być 8 bitowa (255.0.0.0) tylko 24 bitowa (255.255.255.0). Maska 8 bitowa używana jest tylko dla loopback'a, czyli pętli zwrotnej. Twoje adresy na poszczególnych interfejsach sieci wewnętrznej to. Host1 eth0 Konfiguracja zgodna z zaleceniami providera eth1 10.0.0.1 255.255.255.0 Host 2 10.0.0.2 255.255.255.0...
przy udostepnianiu pol. internetowego nawet nie trzeba podawac adresacji. XP ma w sobie w tym przypadku wbudowany server DHCP ktory rozda sam adresy. Wystarczy zeby klient podpiety pod ten XP mial wlaczony DHCP dla IPv4. Lub adresacje z zakresu 192.168.0.0\24 czyli np. adres 192.168.0.2 maska 24 bitowa.
The very first step jest modyfikacja pliku stm32_eth.h, plik ten zawiera definicje adresu rejestru statusowego zastosowanego PHY, oraz definicje masek bitowych zawierających informacje na temat położenie bitów prędkość oraz duplexu w tymże rejestrze. W przypadku ste100p jest to rejestr “XCVR Configuration Information and Interrupt Status Register”...
Rzeczywiście maska jest błędna. Wogole takiej maski nie przyjmie jest bitowa dziura 11110010 w trzecim bajcie - wystarczy 255.255.255.0
Do utworzenia jest 60 podsieci FLSM z sieci klasy C (maska 24 bitowa). Mamy więc do dyspozycji 8 bitów. Najbliższa nie mniejsza niż 60 potęga 2 to 2^6=64. To daje 64 (lub 63, bez podsieci 0) podsieci o rozmiarze 32-(24+6)=2 bity, czyli posiadające po 2 użyteczne adresy.
Jedyne, których nie mogę zrozumieć, to flagi i dowództwo. Czy to tylko całkowita maska bitowa wszystkich aktywnych flag? Mój nie zapełnia się w aplikacji internetowej - a new_pins.h nie definiuje żadnych flag powyżej bitu 9? Ponadto aplikacja internetowa nie przechwytuje „polecenia”, ale jest wymieniona w pliku readme? Dodano po 14 Utworzono PR dla...
Witam Obojętnie w jakim języku piszesz możesz skorzystać z "maski bitowej": Jeśli na którymś miejscu chcesz ustawić 1 to należy tą liczbe potraktować operacją logiczną OR z liczbą która na ineresującym miejscu (-ach) będzie miała 1 a na pozostałych 0. Np. 1010 OR 0100 ________ 1110 Jeśli na którymś miejscu (-ach) chcesz ustawić 0 to należy tą liczbe...
Po pierwsze, używaj aktualnych plików nagłówkowych, z rejestrem BSRR i bez BSRRH/BSRRL. Po drugie - co jest szybciej napisać: GPIO_BSRR_BR_15 czy 1u << 15 << 16 ? Moim zdaniem radosna twórczość w postaci tworzenia definicji zawierających długie nazwy z NUMERAMI bitów na końcu jest tylko zaciemnianiem programu (słynne Atmelowe 1 <<...
Jeśli w komputerze mam ustawiony adres IP automatyczny, Polecenie ipconfig wpisane do cmd wyświetli ci adres IP komputera plus adres bramy czyli routera. Przy masce 24 bitowej najlepiej ustawić adresy IP drukarek tak aby nie kolidowały z zakresem serwera DHCP ustawionego na routera. Przykład: 192.168.0.1 - adres IP routera. 192.168.0.2 do 192.168.0.100...
Dziękuję koledze LordBlick, poprosiłem go o odblokowanie tematu, bo wydaje mi się, że mimo pozornej prostoty problemu warto się nad nim chwilę zastanowić. Zanim przejdę do odpowiedzi na post #3, powiem dwa słowa o makrodefinicjach. Wiele osób z nich chętnie korzysta, w pokazanym wyżej przykładzie zdecydowanie lepiej posługiwać się makrami LED_ON i LED_OFF...
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...
przesuniecie bitowe mikrokontrolery bitowe przesunięcia bitowe
kontroler muzyczny samsung blokada telefonu samsung s2000 yamaha
palnik olejowy elektroda odkurzacz bosch
Zatrzaśnięte drzwi - jak je otworzyć? Powtarzający się alarm dźwiękowy w urządzeniach Amica