Sekwencja inicjalizacji wywietlacza jest nastepujaca: 1. Wlaczenie zasilania 2. Oczekiwanie min. 45ms (wewnetrzna inicjalizacja) 3. Wyslanie komendy : RS R/W D7 D6 D5 D4 0 0 0 0 1 1 przed ta operacja nie wolno sprawdzac znacznika busy 4. Oczekiwanie min 4.1 ms 5. Powtorz poprzednia komende 6. Oczekiwanie min. 100us 7. Powtorz poprzednia komende 8. Wyslanie...
Przyczyna jest w tych linijkach Trzeba też pamiętać, że jeżeli zdefiniujemy tablicę n elementową i spróbujemy zapisać coś pod indeksem równym lub większym n to kompilator nie zgłosi błędu, ale skutkować to może nieprawidłowym działaniem programu.
Przecież 63 And 19 to właśnie jest 19. Wszystko działa tak jak należy. Błąd jest, ale w tym manualu który podałeś.
Domowy sprzęt najczęściej nie radzi sobie z obróbką (jest to za duży strumień binarny). Także nie usiłuj robić "downbitu" z 24 na 16 bitów. Z ogólnodostępnych/darmowych aplikacji żadna nie wykonuje tego poprawnie. Domowy komputer sobie nie poradzi? Raczy kolega żartować? Film pociągnie a dźwięku nie? Takie zabawy robiłem już na komputerach pokroju...
Takie operacje znajdziesz w każdym kursie programowania mikrokontrolerów w C. Robi się to tak:[syntax=cpp]switch(op) { case 1: port |= 1<<bit; break; case 2: port &= ~(1<<bit); break; case 3: port ^= 1<<bit; break; }[/syntax]
Rozwijając to co pisał snnaap o nadpisywaniu, dla pewności lepiej wszystkie wartości maskować/warunkować, wtedy nie ma żadnych nieprzyjemności, jeśli zapomni się o dozwolonych wartościach. Dodatkowo, coś mi nie pasuje przy wysyłaniu danych po SPI. Zakładając, że funkcja wysyła bajt, to w pierwszej linii wysyłasz młodszy bajt słowa, a za drugim razem...
Zastosuj jawne rzutowanie : [syntax=c]tmp = ( (unsigned char) ~PINB >> 4);[/syntax] W CManiaku sprawdź sobie taki program: [syntax=c]#include <stdio.h> int main(void){ unsigned char a,b; a = 0x11; b = ( (unsigned char) ~a >> 4); printf("%x", b); return 0; }[/syntax]
no i przeciez masz zadeklarowana tablice jako dwuwymiarowa, a operajci poddajesz tylko jako jednowymiarowa innymi slowy dokonujesz operacji typu (unsigneg long*)&(unsigned long) co daje oczywiscie blad, bo operatory bitowe nie sa zdefiniowane dla wskaznikow 4\/3!!
http://pl.wikibooks.org/wiki/C/Operatory Prosze
http://obrazki.elektroda.pl/4029783300_1... Układu SID (6581 stary i 8580 nowy), będącym muzyczną orkiestrą komputera Commodore 64 nie trzeba nikomu przedstawiać – między innymi dzięki jego brzmieniu owa maszyna osiągnęła tak dużą popularność. Warto tylko przypomnieć, że SID ma jedynie trzy kanały, ale umiejętności programistów...
To czego jeszcze nie wiesz? Zrób unię = bajt + struktura pól bitowych i do każdego parametru odwołujesz się przez pola struktury, a jeżeli ten bajt dostajesz lub potrzebujesz wysłać do innego urządzenia, to odwołujesz się do bajtu. Proste i skuteczne. Bardziej interesujące może być pytanie co Ty chcesz zrobić z tymi danymi. Być może sam sobie stworzyłeś...
Ustawiona predkosc zegara w symulatorze jest bez znaczenia, wazne jest ile taktow operacja zajmie, a to latwo sprawdzic, bo w AVR Studio jest stosowny licznik. Potem wiedzac ile czasu zajmuje jeden takt mozna wyliczyc czas. Operacje na liczbach 32-bitowych sa szybkie, na float to raczej tragedia.
FC to informacja, czy aktualne RLO jest do użycia, czy nie. Inaczej czy wynik operacji - bitowy - można użyć dalej, czy inna operacja nie wpłynęła na jego wartość i obecnie RLO należy wygenerować na nowo.
No brawo, po 16 postach zrobiłeś w końcu to co napisałem ci w poście nr 2 :) Natomiast na przyszłość - zainteresuj się operacjami bitowymi, pozwoli ci to w sposób dowolny modyfikować stan poszczególnych pinów IO.
operacje bitowe zastosowanie zboczy rozumienie setowania bit "zawsze1" timery wszelkiego rodzaju zasada działania stacyjek do obsługi napędów/zaworów/siłowników
[youtube]https://www.youtube.com/watch?v...
Myślę, że koledzy nie do końca wytłumaczyli o co chodzi. Pytający ma dwie zmienne typu uint_8_t, a pomimo tego operacja 100-105 daje poprawny wynik -5. Wynika to z kilku rzeczy. Zapewne funkcja wyświetlająca wartość przyjmuje jako typ argumentu int. Następuje więc promocja typów i rzutowanie typu unsigned na signed, co jednak nie do końca tłumaczy poprawny...
for - pętla, tak jak napisałeś bit= (buf>>j)&1; Operacje bitowe: ">>" przesuniecie w prawo,"&" operacja AND-owania. Poczytaj o operatorach w c i będziesz wiedzial
Podstawą jest Pełny 1 bitowy sumator (FullAdder): https://obrazki.elektroda.pl/3093507700_... Z niego można zbudować sumator wielobitowy łącząc w szeregu wiele jednostek: https://obrazki.elektroda.pl/5294488100_... W rzeczywistych układach stosuje się inne rozwiązania bo powyższy jest tym wolniejszy im więcej bitów...
Trzeba wtedy trochę pomanipulować operacjami bitowymi: [syntax=c] PORTC = (PORTC & 0b11110000) | (1 << PC0) | (1 << PC3); [/syntax] ta komenda po kolei: bierze aktualny stan portu C kasuje bity 0..3 (tzw. maskowanie) ustawia bity 0, 3 zapisuje wynik działania do PORTC Operacja jest rozbijana na więcej instrukcji ASM, ale w efekcie nie...
Witam, Jaka będzie wartość zmiennej "ZMIENNA" po tych dwóch operacjach bitowych: Zakładając, że początkowa wartość zmiennej "ZMIENNA" wynosi "0000 0000". 1. ZMIENNA &= (0x0F | 0x03); 2. ZMIENNA &= (0x0F | 0x02);
...if((liczba & 0b10000000)==1) to wiesz że najbardziej znaczacy bit jest ustawiony... A cóż to za herezje, kolega nam tu wypisuje :?: hessuss Poczytaj o operacjach bitowych typu AND, OR, XOR(EOR), bo bez tego, daleko nie zajedziesz :-P
Dostępy bitowe BitBand są atomowe z perspektywy procesora lub DMA, nie mamy jednak podstaw do twierdzenia, że są one atomowe z perspektywy peryferiali. Nie wydaje mi się, by mechanizm BitBand gwarantował, że sprzęt nie zmodyfikuje bitu w rejestrze peryferiala w tym samym czasie, gdy interfejs szyny będzie wykonywał na tym rejestrze operację BitBand....
To można osiągnąć przez odpowiednie operacje bitowe, przykład: [syntax=cpp]if(x & 1 << 2) {[/syntax] Prawda, jeśli drugi (licząc od 0) bit zmiennej x jest równy 1.
Będę w domu po 17 tej to popatrze. Wiem ze mam system 32 bit bo taki zainstalowałem z myślą że będzie dużo lżejszy dla słabego laptopa. Wiem że kiedyś miałem dostępne ramu na tym laptopie około4.95gb . Nie jestem na sto% pewny czy wtedy miałem64 bitowy Win 10. Jeśli jest jakaś możliwość by na 32bitowym win10 ugrać tak do 5 gb dostępnego ramu to fajnie...
Dla świętego spokoju ten wpis w rejestr 16 bitowy bym zrobił przy wyłączonych przerwaniach. Zwróć uwagę że nie jest to operacja atomowa.
dzięki za podpowiedzi, mam jeszcze w związku z tym pytania (dot. asemblera): według specyfikacji CORTEX-M3, funkcja mogła by wyglądać tak: ROL R0,1 ROR R0,31 dają identyczny wynik. Pytanie brzmi: co jeśli moja zmienna jest 16 bitowa, a rejestr na którym będzie realizowana operacja ROR jest 32 bitowy ? O tych rotacjach w asemblerze dot. tego kontrolera...
Witam. Chciałem rozgryźć wyświetlacze z HD44780. Po nieskutecznych próbach z interfejsem 4-o bitowym, wszystko skasowałem, i napisałem zupełnie od nowa, tym razem pod interfejs 8mio bitowy. OK, poczytałem datasheety, diagramy itp. Według mnie wszystko raczej się zgadza, ale wyświetlacz się nie chce zainicjalizować (a raczej dwa wyświetlacze, bo próbowałem...
Nie rozumiem początku. Operacja mnożenia daje w wyniku sklejony rejestr 16 bitowy "B,A", gdzie jest B starszą częścią. Po drugim mnożeniu wykonujesz dodawanie z tym, że sumujesz starszy bajt poprzedniego mnożenia i młodszy bieżącego. Dalej nie sprawdzałem. Wyjaśnij cel powyższego działania (może ja coś wymyśliłem :-)). A poza tym we wzorze y=ax+b jest...
>A ile cykli zegarowych przypada na jeden cykl maszynowy? 4 cykle >A prztwarzanie potokowe - podstawowa cecha procesorów RISC? ma dwupoziomowy pipeline (tak piszą w dokumentacji) >A te zawieranie adresów w słowie to jak w nich wprowadzono? >Rozszerzająć słowo do dziwnych rozmiarów 12, 14 bitów... Architektura Harvard, z poziomu programisty...
Pozostaje jeszcze zwykły licznik np. 8 bitowy i komparator, jak licznik doliczy do 59 to komparator (musi być na tyle ustawiony) resetuje licznik z wejścia asynchronicznego. tu miales na mysli chyba komparator na 60 a nie na 59. Chodzi o licznik modulo 60 a nie 59.
10 bitowy ADC, a w dzielnikach napięcia rezystory z tolerancją 5%, to jakieś nieporozumienie. Uchyb dzielnika można skompensować programowo - po to są mikroprocesory. I tak też zostały wykonane dzielniki. Wykonane, pomierzono uchyb i poprawki jako stałe wprowadzono do programu. Kiedyś, jak elektronika była tylko analogowa, taka operacja była nie możliwa...
Wspomniane "pomnóż logicznie przez 0xF" znaczy tyle co "wykonaj operację bitowego AND z 0xF". Wartość 0xF to ustawione cztery najmłodsze bity, jej efektem będzie to, że na tych bitach z odczytanej wartości nic się nie zmieni, a pozostałe zawsze będą zerami.
Takie rzeczy się zdarzają i nie zawsze można sensownie uzasadnić przyczynę powstania zmian a co za tym idzie wskazać szybki sposób naprawy. Przyczyną może być choćby 64 bitowy system operacyjny, który wymusił zmianę alokacji pamięci w BIOS potrzebnej do obsługi urządzeń takich jak choćby PCI. Zadziałała Funkcja ponownego mapowania pamięci. BIOS nie...
Prawie dobrze. Jeżeli chcesz skasować pojedynczy bit to:[syntax=c]REJESTR &= ~(1<<BIT);[/syntax] natomiast przy ustawianiu pojedynczego bitu:[syntax=c]REJESTR |= (1<<BIT);[/syntax] A tak ogólnie to warto poćwiczyć operacje bitowe, żeby mieć je w małym palcu :) bo przy programowaniu mikrokontrolerów przydają się na każdym kroku.
Witam. Oddalem lapka do serwisu i wymienili mi hdd. Mam czysty system. Wszystko od nowa. Przy aktualizacji przez SW Update tylko karty graficznej nie moze cos zaktualizowac. W menadzerze urzadzen mam cos takiego w wlasciwosciach karty graficznej: " Nie można uruchomić tego urządzenia. (Kod 10) {Operacja nie powiodła się} Żądana operacja nie powiodła...
(at)madiz08 Rozpisz sobie operacje bitowe, chociażby na jednym bajcie i wszystko stanie się jasne. Operacja AND 0 zawsze da 0, a AND 0xff zwróci niezmienioną wartość. Czyli wniosek z tego taki, że jeśli chcesz testować konkretny bit to go maskujesz przy pomocy AND, np. PINC & 2 - czyli interesuje cię bit nr 1 (licząc bity od zera), w efekcie dostaniesz...
Zasilanie to zwykły 7812 z dużym kondensatorem na wejściu (4700u) a na samej płytce 7805 i to zasila uC. Ważne jest co i w jakiej odległości znajduje się za stabilizatorem, i jednym, i drugim, w szczególności chodzi o indukcyjności i pojemności, a także udbiorniki pobierające duży prąd (rzędu setek mA i więcej). A czy podczas pomiaru tej rezystancji...
Operacja iloczynu logicznego oraz przesunięcia w prawo np. interesuje Cię bit 4 a jakimś rejestrze X i zapisać go na 2 bicie portu D push X //odłóż na stos and X,b00001000 //interesujacy nas bit 4 ror X,2 //ror - rotacja w prawo z wpisywaniem 0 na początek X=000000Z0 (Z - czwary bit odczytany z rejestru X na 2 bicie) z 4 miejsca na 2 wiec 2...
Przy operacjach bitowych dobrze czasem pomagać sobie przesunięciami Np. 1 << 0 oznacza bit 0 (wartość 1 - szesnastkowo 0x01) 1 << 1 oznacza bit 1 (wartość 2 - szesnastkowo 0x02) 1 << 2 oznacza bit 2 (wartość 4 - szesnastkowo 0x04) .. 1 << 31 oznacza bit 31 (wartość 2147483648 czyli szesnastkowo 0x80000000) Zamiast kombinować...
Wtedy jest traktowana jako liczba bez znaku, a nie konwertowana na bez liczbę znaku. Konwersja a traktowanie to co innego. Pozatym konwersja nie była by możliwa skoro liczba jest ujemna. Możliwe jest jedynie policzenie modułu (wartości bezwzględnej).
Tak, twoja płyta ma dwa banki i obsłuży pamięci 1066MHz , najwięcej co tam możesz włożyć to 2 x 2 GB. System 32 bitowy zobaczy trochę mniej , warto zmiejszyć wówczas pamięć wirtualną do 512MB lub niżej , by wykorzystywać operacyjną na maksa. Dodano po 5 Na allegro jest np : Kingston HyperX 4GB (2x2GB) DDR2 1066Mhz CL7 - ale CL7 , szukaj z CL5 takie...
Witam W ostatnim czasie próbuję zapoznać się bliżej z procesorem ATxmega64B3. W ramach testów zająłem się tematem flag (czyli zmiennych bitowych), które mogą być zmieniane zarówno w pętli głównej jak i w przerwaniach. Jak wiadomo temat ten ściśle związany jest z zagadnieniem zapisu/odczytu atomowego. Ponieważ bitowy zapis/odczyt atomowy najłatwiej jest...
Skąd zdobyć 7740 ?, czy możliwość androida panowie potrzebuje polski jestem w polsce Dodano po 35 http://forum.xda-developers.com/showthre... znalazłem taką strone ale jaki popbrać romik tego najstarsi indianie nie wiedzą dalej licze na waszą pomoc ;] ? mam i strone z opisem lecz jest nie spójny http://wp7.com.pl/2445/oficjalne-mango-7...
Chodzi o pomnożenie próbki przez liczbę x z zakresu 0-255 i potem przesunięcie o 8 bitów w prawo, żeby uzyskać próbkę o współczynniku x/255, tak? Dokładnie. Mnożenie ma niewielki narzut (procesor ma instrukcję MUL), a dzielenie przez 256 to po prostu obcięcie najmniej znaczącego bajtu. Stałą? Przecież volume_coefficient to zmienna. Owszem, ale nie...
Witam, problem tkwi w wyświetleniu temperatury na LCD. Czujnik działa w trybie 12 bitowym. Szczytuje pierwsze 12 bitów z pamięci scratchpada, sprawdzam czy temperatura jest + czy -, a następnie dokonuje konwersji temperatury na string. Na wyświetlaczu pokazują się jednak dziwne rzeczy. Użycie funkcji typu sprintf odpada (zajmuje za dużo miejsca). Konwersja...
(at)PDT... Rozumiem, iż jesteś fanem pisania w ASM. Czy ma to sens w obecnych czasach? Piszę w bardzo wielu językach programowania. Często w sprzętowych problemach mieszam C/asm. A czasy nie mają tu nic do rzeczy: w moim rozwiązaniu istotna część obsługi zamyka się w 9 rozkazach. Przy operacjach bitowo zorientowanych zwykle zapis w asm jest też bardziej...
PD1 wynosi 1 (bity są zadeklarowane jako numer bitu od 0 do 7) 1 przesunięte o 1 daje 0000 0010 suma logiczna ustawi ci 1 bit rejestru
Oprócz braku schematu (Linia CS podpięta na stałe do GND ?) zauważam, że dobrą praktyką jest używanie nawiasów dla poszczególnych argumentów operacji bitowych i nie używanie gołych liczb, tam gdzie występuje ich równoważnik w postaci definicji preprocesora.
Jak rozumiem zgodnie z teorią języka C dla AVR Prawie dobrze, ale zamiast 00010000 otrzymasz 00100000, choć końcowy wynik będzie dokładnie taki jak Twój czyli 0xF0, ale to przypadek. A teraz drugi przypadek, gdzie zamiast przesuwać jedynkę o 5 miejsc w lewo, przesuwasz w lewo liczbę 0x10 szesnastkowo (czyli liczbę 16 dziesiętnie lub 0x00010000 dwójkowo)...
operacja bitowy przesunąć operacja ukończyć operacja powieść
metalowo gumowe wskaźnik wysterować komputer zmywarka zanussi grzałka
alphard sw1203 głośnik pionier
Czyszczenie wałków laminatora Fellowes, Leitz – arkusze czyszczące, gumki kauczukowe, IPA Volvo 2.0D 136KM – falowanie silnika podczas nocnego przyspieszania, ładowanie, EGR, MAF