http://obrazki.elektroda.pl/7329866000_1... Miernik częstotliwości o całkiem niezłych parametrach, bo potrafiący mierzyć częstotliwości od 1Hz do 10MHz (9,999,999Hz) z rozdzielczością 1Hz w całym zakresie. Idealny do generatorów funkcyjnych lub jako zwykły miernik. Do tego tani i prosty w wykonaniu, z ogólnodostępnych części, a małe wymiary...
Jak teraz patrzę to źle napisałem wartości w ADCH :) Ale mnie więcej o to mi chodziło. Tak czy siak, zależy od ustawienia ADLAR. Jeśli ADLAR ustawiasz na "0" to wynik masz przesunięty do prawej dwóch 8-bitowych rejestrów. A więc jeśli interesuje cię wynik 8 bitowy to nie możesz wziąć ADCH, bo będziesz miał tylko 2 MSB a co z resztą? Jeśli ustawisz ADLAR...
Taki program mógłby wyglądać tak: Mnożna: rejestr E Mnożnik: rejestr A Wynik: rejestr HL LD HL,0000 ;inicjacja wyniku LD B,08 ;licznik pętli LD D,00 ;zerowanie bardziej znaczącego bajtu DE NXBIT ADD HL,HL ;przesunięcie wyniku w lewo RLA ;sprawdzenie cyfry monożnika JR NC, FIN ;opuszczenie zera ADD HL,DE ;dodanie mnoznej FIN DJNZ NXBIT ;powrót do początku...
ok, już wyjaśniam - operacje bitowe wykonują się dużo szybciej niż dzielenie, przykładzik: liczba AND 255 - zerujemy wszystkie bity oprócz ostatnich ośmiu które pozostają bez zmian. Jest to odpowiednik reszty z dzielenia przez 256. przesunięcie bitowe w prawo jest odpowiednikiem części całkowitej z dzielenia przez jakąś potęgę dwójki - przesunięcie...
Cześć. Należy pamiętać, że w MODBUS'ie słowa zabezpieczające informacje zależą od trybu transmisji. Na początek może LRC, czyli Longitudinal Redundancy Check - jest on dołączany przez nadajnik jako ostatnie pole ramki, bezpośrednio przed znacznikami końca linii (Carriage Return i Line Feed) w trybie ASCII. Najkrótsza droga do osiągnięcia tego słowa...
Prawie tak, jak myślisz, z tym że nie masz co zamienić liczby na binarną, bo już taką masz w komputerze. ;) Wyznacz resztę z dzielenia przez 2, dodaj ją do sumy, wykonaj przesunięcie bitowe w prawo o jeden. I tak 32 razy. Teraz zapisz to sobie w kodzie.
AVE... (at)gizmon1 Faktycznie błąd z przysłoną, już poprawiłem literówkę. Co do przesunięcia plamki o pół plamki, to równie dobrze możesz przesunąć piksel o pół piksela, w efekcie podzielić jego jasność na dwa. Mózg dokona interpolacji. Zresztą w aparatach cyfrowych z funkcją IBIS metodą na podwojenie rozdzielczości zdjęcia jest zrobienie bodaj czterech,...
TCCR0 = _BV(x<<CS00); Źle użyłeś makra _BV. _BV(x) jest równoznaczne z ( 1 << x ), czyli w Twoim przypadku próbujesz wykonać podwójnie przesunięcie bitowe. Jeżeli x = 3 (CS00=0): _BV(3<<CS00) = _BV(3) = (1<<3) = 0b00001000 czyli TCCR0 będzie równe 0b00001000 . Innymi słowy, próbujesz ustawić bit tylko do odczytu, zamiast...
Zadanie projektowe polega na syntezie układu zamieniającego liczbę zmiennoprzecinkową na liczbę całkowitą dziesiętną zapisaną w postaci wektora 18 cyfr BCD (i znak, razem 80 bitów). Argument jest zapisany w postaci liczby zmiennoprzecinkowej rozszerzonej wg standardu IEEE 754 (80-bitowej). Mam o to taki właśnie problem. Nie rozumiem jednak samego fragmentu...
Ale po co kolega chce koniecznie wysyłać te 2 bajty? Domyślnie ADC działa z 10 bitową precyzją i taki jest też rezultat (zatem 2 bajty ... 2 8bitowe rejestry ADCH i ADCL). Normalnie 2 najstarsze bity są w ADCH, a reszta w ADCL. Jeśli ustawimy ADLAR to wynik jest przesunięty w lewo, zatem 8 najstarszych bitów jest w ADCH i tu w tym konkretnym programie...
Aktualizacja -zworka umożliwiająca odłączeniw vcc z programatora. Same pliki sch i brd, resztę trzeba sobie wygenerować samemu. Znalazłem też błąd w warstwie opisowej - tranzystory do sterowania wyświetlaczem wyprowadzone na złącza D1 D2 D3 i D4 powinny być przesunięte w lewo o jeden(coś w rodzaju rotacji bitowej).
Ok, dziękuję wszystkim za chęć pomocy, właśnie rozwiązałem problem i chcąc oszczędzić czas przyszłym potencjalnym osobom błądzącym w tym samym rejonie postaram się trochę przybliżyć temat: 1. Pierwszą rzeczą, jaką zrobiłem było napisanie programiku działającego na zasadzie obliczania, a następnie sprawdzania sum kontrolnych. W internecie były dostępne...
shg : w avr rotacja jest 9-bitowa (razem z flagą C), więc nie ma możliwości zaimplementowania rotacji bitów w bajcie w jednej instrukcji. Twój kod u mnie na WinAVR20071221 skompilował się do: mov r25,r24 rol r25 clr r25 rol r25 lsl r24 or r24,r25 Co i tak jest dużym sukcesem. Jakkolwiek można by zaoszczędzić 2 instrukcje zamieniając (drugie) "rol r25"...
Przecież ten uC ma timer - wyśietlanie w pętli z opóźnieniami to zbrodnia. Tak mam TCC, ale wykorzystuję go do animacji. Właśnie w jego przerwaniu robię te wszystkie przesunięcia bitowe itd. Uznałem, że tak będzie prościej, jeżeli część funkcji wstawić w przerwanie, a resztę w pętli głównej. Kod wyświetlania jest skomplikowany, ale inaczej nie dało...
poziom:=cisnienie* 10.19716; (*wartosc rzeczywista - przeskalowanie ciśnienia na wysokosc slupa wody*) poziomCentymetry:=TRUNC(poziom*1... (*poziom w centymetrach+ odcięcie czesci po przecinku*) 1. czyli poziomCm = cisnienie * 1019.716, spodziewasz się wartości od 0 do 1000 cm, więc cisnienie < 1.0 bar 2. ciśnienia...
Drogi panie kolego zegar został sprawdzony z chipem oryginalnym wsadem i działa, jeżeli chodzi o ai wykonało poprawnie program na test diody oraz test diody z sygnałem chipu ds1 302, jeżeli chodzi o to czemu nie może poprawnie wykonać testu wyświetlaczy to problem polega na tym, że większość oprogramowań jest albo na arduino z innym mikrokontrolerem,...
Co jest źle: hours=bcd2bin(twi_readAck()&... // wyswiela na LCD godzinę minut= bcd2bin(twi_readAck()); // -/- minuty hours= bin2bcd(hours); // konwarsja na BCD minut= bin2bcd(minut); // -/- komenda_RS(ramka,0,6,7,((uns... int)hours)<<8 | (unsigned int)minut /* L1 */ ,0,0,0,0,0,0,0,0,0,0,0,0);...
Tu masz dzielenie liczb czterobajtowych przez dwu bajtowe (16 bit).Co prawda nie moje opracowanie, podaję w orginale. ;procedura dzielenia 4-BAJTOWYCH liczb przez 2-BAJTOWE ; wejscie: ;r0 - adres najstarszego bajtu dzielnej, ;r1 - adres najstarszego bajtu dzielnika, ; wyjscie: ;R0 - adres ilorazu ;R6:R5 - reszta ;W deklaracji zmiennych programu wykorzystujacego...
Czy nie ma szybszych alglorytmów? Oczywiście, że są. Wykorzystaj algorytm mnożenia i dzielenia pisemnego. Dzięki temu znacznie ograniczysz ilość dodawań czy odejmowań. Na przykład 1234 * 5678 zrobione metodą powyższą to 1234 dodawania (zakładam, że program jest chytry i sprawdza na początek która liczba jest mniejsza i ją bierze jako licznik pętli)....
Co do teorii mamy 24 bitowy kolor czyli w przelozeniu na bity RRRR RRRR GGGG GGGG BBBB BBBB a tu 16 bitowy czyli RRRR RRGG GGGB BBBB czyli literka R odpowiada za wartosc koloru czerwonego (np. 1011 0110 - czysty przyklad z kalosza ciagniety) G i B analogicznie - z takiego czegos sklada sie caly kolor Skupmy sie na R (reszta analogicznie) w 24 bitach...
Ze zmianą DATA chodzi mi o to żeby na wejście DATA wysłać 8 bitowy kod na dane wyjście. Następnie na CLK posłać impuls i przesunąć bit rejestru i posłać znowu 8 bitów na następny (kolejny) rejestr przesuwany. To chyba najprostszy sposób. Może trochę wolne ale bardzo proste w konstrukcji. Wykorzystanie demultiplekserów było by fajne gdyby nie to że zmieniają...
<< powoduje przesunięcie bitowe i może być użyte do wstawioenia 1 na daną pozycję w bajcie, przykład bajt=1<<6; to nic innego jak: bajt=(1 przesunięta 6 razy w lewo) czyli bajt=01000000; Poza tym, nie możesz tego robić po kolei MCUCR=1<<ISC01; MCUCR=0<<ISC00; nawet gdyby w drugiej linijce wstawić 1 MCUCR=1<<ISC01; MCUCR=1<<ISC00;...
Po prostu "kocham" taki zapis :| DDR &= 0b11111110; //1 przesunięte o 0 i zanegowane przesuwanie o 0 nie ma sensu, bo to nie jest przesuwanie, poza tym używanie przesuwania bitowego do ustawiania portów jest jednym z najbardziej nieczytelnych rozwiązań. W każdym razie: powinno działać. Co w takim razie może być źle: - wywołujesz przerwanie, które nigdzie...
Podstawy takiego przedmiotu jak Układy Logiczne . Masz wszystko podane jak na tacy, przerzutnik z wejściem load, wyjścia wyprowadzasz i Q_o na D_i, 2-1 multiplekser i masz piękne przesunięcie w takt, a suma logiczna to OR. Tu aż się prosi o użycie generate . Do reszty użyj google albo link bo zdj duże. A słyszał o czymś takim jak obróbka zdjęcia ? A...
Witam. Zabawnie się składa, że obecnie programuję ten sam chip (tylko z użyciem PIC18F4450). Ja problem odpowienich częstotliwoście rozwiązałem w tem sposób: - numer nuty dziele przez 12, dzielenie oznacza numer oktawy, reszta to nuta w oktawie - w programie zadeklarowałem tablice czestotliwości jednej najwyższej oktawy - niższe można uzyskać przez...
dzielenie16_16: ;dzielenie 16 bitow przez 16 bitow ;we: r2 - H dzielna ; r3 - L dzielna ; r4 - H dzielnik ; r5 - L dzielnik ;wy: r2 - H czesc calkowita ; r3 - L czesc calkowita ; r0 - H reszta ; r1 - L reszta ;zmienia: acc, psw, r7 ;algorytm: ; Hi:=0 ; Lo:=dzielna ; wy:=0 ; repit 16 razy ; { ; shift_left_32bit (Hi,Lo) ; if Hi>=dzielnik ; {wy:=2*wy+1;...
No ladnie. Sliczne procedurki. Twoja proc odnosnie dzielenia jest olbrzymia. Moja jest mniejsza. Moze by tak maly konkursik na procedurke dzielenia 16 bitowego w kilku kategoriach: szybkosci wykonywania, wielkosci kodu. dzielenie16_16: ;dzielenie 16 bitow przez 16 bitow ;we: r2 - H dzielna ; r3 - L dzielna ; r4 - H dzielnik ; r5 - L dzielnik...
Witam Mam taki problem: Chce wpisać zawartość tablicy unsigned char tekst[100]; do pola Edit Tak normalnie wystarcz zapis: Edit9->Text=tekst; Jednak w tym przypadku moja tablica jest modyfikowana na poziomie bitowym więc musi być typu unsigned a z tego co zauważyłem ostatni bit każdego znaku ma wartość 0 i często przy pobieraniu znaków z...
Wielomian opisuje ciąg 17-bitowy, ale jest to poprawny zapis - jeśli liczyć crc z definicji, traktując dane jako wielomian x-tego stopnia (gdzie x to liczba bitów), to przy dzieleniu aby reszta była wielomianem 16 stopnia (16 bitów), generator musi być stopnia o jeden wyższego. Do implementacji na rejestrze przesuwanym odrzuca się najstarszy bit. Co...
Witam skrobię mały program na armie. Problem jest następujący: Z ADC'a dostaję 12bitową paczkę danych zakodowaną w U2, program w procku przepisuje ją do zmiennej typu int. Kodowanie U2 jak wiecie zależy od tego ile bitów ma dana, int ma 32 a ja mam daną 12 bitową. Jak to ugryźć by tą daną do tego int-a właściwie włożyć. Metoda naokoło tj wygląda następująco...
Ten kod to pisał jakiś mało-kumaty nauczyciel. Mam wrażenie, że zrobił to złośliwie i chciał żebyście długo nad tym myśleli, albo nie napisałeś wszystkiego. Podstawowa sprawa to zdefiniowanie zmiennych jedno-bitowych (na samym początku) a nie odwoływanie się do czegoś po adresach (chodzi mi o te wartości liczbowe). Poza tym wyjaśnił po co jest przesunięcie...
u8 Yy_dec; // Zmienna pobierana z PCF8583, wartosc od 0-3 (0 - rok przestępny, inne - rok normalny). u8 Mm_dec; // Zmienna numeru miesisca roku pobierana z PCF8583 i skonwertowana z bcd na dec. u8 Wd_dec; // Zmienna numeru dnia tygodnia pobierana z PCF8583 i skonwertowana z bcd na dec (0 - Pon, 6 - Nie). u8 Dd_dec; // Zmienna numeru...
Witam, Oprogramowywanie AD9850 trzeba zacząć od funkcji obliczającej 'tunning_word', 32-bitowej reszty z dzielenia częstotliwości ustawianej DDS przez częstotliwość referencyjną (najczęściej 125MHz). Dla zachowania dokładności nie liczymy słowa sterującego jako mnożnik rastra. Przykładowo mój DDS ma dokładną częstotliwość referencyjną 125 001 320 Hz...
jak zadajesz takie pytanie, to zawsze podaj: -jaki procesor -ile ew. masz miejsca w pamieci (na tablice itd.) -raczej podawaj dokladnie problemy, bo to jest dosyc ogolne... -jaka ma byc dokladnosc tego jest cos takiego jak fixedpoint math - to taka matematyka na liczbach ulamkowych z uzyciem liczb calkowitych. Polega to na tym, ze zamiast...
Witam wszystkich po krótkiej przerwie! :) Jestem pod wielkim wrażeniem waszych wypowiedzi i nie spodziewał się takiej mnogości możliwości, co mnie niezmiernie ucieszyło :). Nie ukrywam, że najbardziej atrakcyjnymi dla mnie rozwiązaniami są te w miarę najprostsze. Tak pomyślałem, że może połączę dwie opcję w jedną. Otóż: 1. podział 12-bitowej liczby...
Program wygląda dużo lepiej. I = 1wread(2) pobiera dwa bajty w których znajduje się temperatura. Polecam zajrzeć do karty katalogowej DS18B20 str.4. W I znajdzie się liczba 16 bitowa, gdzie pierwsze 4 bity to znak, następne 8 bitów to część przed przecinkiem, a cztery ostatnie to to co po przecinku. Liczby ujemne są w kodzie U2. S = I / 16 Powyższe...
Na stronie 7 masz wykres przebiegów, o okresie 20... Można coś w tym uprościć: dla silnika nie ma znaczenia, jakie potencjały masz na końcach uzwojenia, a tylko ich różnica, więc nie trzeba podawać np. par potencjałów -1V i +1V, 0V i 0V, +1V i -1V, można je zastąpić 0V i +2V, 0V i 0V, +2V i 0V - a nawet pozwolić na to, żeby było albo 0V i 0V, albo...
Powrót małorolnego człowieka, a moderator burdel teraz zrobił. Zamiast zostawić potrzebne posty, to temat przeniósł do ??? Jaki mikrokontroler wybrać do... ??? Co to ma wspólnego z założonym tematem ? Jakiś nieogarnięty w temacie... Tylko spójrzmy na to obiektywnie - co kolega tymon_x sprawdził ? żeby nie było niedomówień! Otóż sprawdził (przepraszam...
Witam. Czy potrafi ktoś pomóc mi z zadaniem z assemblera? Mam do napisania program, który mnoży dwie liczby 5 bajtowe (40 bitów) szesnastkowe oraz podaje wynik również w tym systemie (tylko wynik będzie wtedy 80 bitowy). Problem polega na tym, że do tego mnożenie trzeba wykorzystać algorytm, ponieważ instrukcja mul nie działa dla tak dużych liczb. Mnożenie...
Siemka! Tak patrzę w ten Twój kod i pewnych rzeczy nie kumam, ale spróbujmy go przeanalizować. - Resetujesz 1-Wire i wykonujesz polecenie konwersji po czym czekasz 750ms i super :) tylko zastanawiam się po co odczekujesz kolejne 750ms po poleceniu odczytu scratchpad? To jest niepotrzebne, możesz odczytywać dane od razu. Poza tym rozbijanie Waitms 750...
Dziękuje za ten jakże profesjonalny wpis, ale jak się to ma do migania żarówki? Chciałem zaznaczyć, że nie konstruuję wehikułu czasu, czy tam napędu międzygwiezdnego, tylko losowy przerywnik obwodu, do migania żarówką. Wrzuciłem to co napisałeś _jta_ do Groka i poprosiłem o wyjaśnienie. Oto co przygotował w... 4 sekundy: Autor opisuje sposób generowania...
Stary fajny BIOS :) Nawet szkoda komentować tą wypowiedź. :/ jakbym był moderatorem dałbym ostrzeżenia za naruszenie przynajmniej 2ch puntów regulaminu: ironizowanie, nie posuwa wątku naprzód. Co masz konkretnego? W grach to się nazywało "sprite", trzeba było zapamiętać gdzie jest i jaki jest. Drogi kolego. Myli kolega 8-o bitowe procesory z architekturą...
Nie wiem dokładnie jak to działa... Działa to tak: Przetwornik w LPC1768 na ustawione próbkowanie na wartość np. 100,0 kHz. Ustawiam ten odczyt w pętli for (;;), która wykonuje się 20 razy (oznacza to liczbę próbek). W rezultacie daje to okno częstotliwościowe równe 5,0 kHz, czyli że w tym oknie zmieści się dokładnie 1 okres przebiegu o częstotliwości...
Taka ciekawostka, mnie przynajmniej zaskoczyła a i może się przyda - jest implementacja 'kompresującego bitsetu' dla c https://lemire.me/blog/2017/03/31/compre... . Włączenie linuksowego zram może by dało ciekawy efekt. Fajnie. Może się kiedyś przydać taka biblioteczka. Ale nie wiem czy w tym programie jest sens, za radą...
Funkcja tobin To jest źle: unsigned int bitval = 65535; Ponieważ binarnie jest to 16 jedynek, a dalszy ciąg tej funkcji wyraźnie robi bitowe AND z tą liczbą po czym bitowo przesuwa w prawo, by na tej podstawie sprawdzić czy na danej pozycji jest 0 czy 1. Łatwo się domyślić że powinna tutaj na starcie być liczba gdzie MSB = 1 a reszta = 0. Czyli (najprościej...
https://obrazki.elektroda.pl/2227184700_... Dzisiaj uruchamiamy moduł MCP9808, czyli cyfrowy termometr działający w zakresie od -40°C do 125°C przy typowej dokładności 0,25°C, zasilany napięciem od 2.7V do 5.5V. Najpierw zaimplementujemy jego sterownik w oparciu o gotowe funkcje dla komunikacji I2C by móc odczytywać z niego pomiary...
W rysunku 1 . Wkrótce przekonamy się, że rzeczywiście mamy problem z szumem; najpierw jednak należy dowiedzieć się, jak właściwie analizować taki obwód. https://obrazki.elektroda.pl/4837456600_... Rys.1. Filtr Direct Form I, który omówiony zostanie w dalszej części tekstu (grafika z Wikipedii). Podobnie, jak wiele innych filtrów...
Hej witam.Dziękuję za szybkie zainteresowanie o postarałem się do Twoich wskazówek, ale chyba nie udolnie, bo nadal nie umiem tego rozpracować.Ale po pewnych zmianach program zaczyna oblicza faktycznie klucz jakiś na podstawie wpisanego ciągu, wiec jest lepiej.Ale przy przy szyfrowaniu zdjęcia bmp wykazuje, że jest 24 bit, ale gdy nacisnę, ok to wyskakuje...
http://obrazki.elektroda.pl/9824916400_1... Witam, Korzystając z ostatnich wolnych dni przed studiami chciałbym zaprezentować moją ostatnią konstrukcję. Jest to mały przenośny barometr. Konstrukcja powstała na potrzeby osoby wrażliwej na zmiany ciśnienia oraz spełnia jej wymagania tzn. mały rozmiar( 20x40x9mm) oraz co się z tym wiąże...
https://obrazki.elektroda.pl/7246994600_... Dzisiejszy projekt będzie opierać się o Arduino. Pokażę tutaj jak uruchomić kontroler wyświetlacza/klawiatury ze starego tunera sat w oparciu o jego notę katalogową oraz bibliotekę Wire z Arduino. Poznamy szczegóły jego interfejsu szeregowego opartego o linie SDA i SCL i spróbujemy przygotować...
przesunąć bitowy przesunąć bitowy atmega8 operacja bitowy przesunąć
ne555 timer przekaźnik wykrywa 800mhz napiąć żarówka projektor
harman kardon parkowanie silnika wycieraczki
Renault Master dCi gaśnie podczas jazdy – przyczyny, diagnostyka, typowe usterki Kosa spalinowa Stihl, Husqvarna – silne drgania, sprężynowanie podczas pracy – przyczyny i naprawa