https://obrazki.elektroda.pl/8115074100_... W związku z urlopem postanowiłem opisać wykonaną w ostatnim czasie konstrukcję. W zawodzie nauczyciela akademickiego jest to 36 dni roboczych plus w moim przypadku 26 dni zaległych z zeszłego roku. Jest to więc trochę czasu - za dużo. Wszystko zaczęło się od znalezienia tunera DVB-T Opticam...
Co do rejestrów 32 bitowych... W oprogramowaniu MT PROG są one widziane jako np. DREG1H, DREG1L. Nie można się do nich odwołać bezpośrednio jako DREG1 Z dokumentacji: Mnożenie X przez Y zapisz wynik (rejestr) = pobierz X (rejestr) * pobierz Y (rejestr) Przekroczenie zakresu sygnalizowane jest ustawieniem flagi błędu Czy mnożąc XREG3 * XREG4, można...
Ok spróbuje w ten sposób. Ogólnie nie chciałem wrzucać bezpośrednio instacji tych komponentów Nie ma takiej potrzeby. Podejrzewam, ze wartość ACC jest używana natychmiast po przypisaniu przez mnożarkę, wiec syntezer nie może wstawić rejestrów pomiędzy bloki 18x18 i 'spajplajnować' przetwarzania. Spróbuj wstawić opóźnienie na 1-2 rejestrach na wyjściu...
Niestety, Intel poraz kolejny nałożył ogromne organiczenia. mov eax,5 ; mnożnik xchg eax,ecx mul ecx xchg eax,ecx ; ecx = wynik
LJMP START START mov R3, #8 mov R4, #2 mov R5, #4; dotąd jest dobrze mov A, R3 ;add R3 -źle, dodawanie wymaga dwóch operandów add A, R4 ;add R4- jak wyżej add A, R5 ;add R5- jak wyżej mov R7,A ;mov A, R3-nie wiem co miałeś na myśli pisząc ten kawałek kodu(5 lini) ;mov A, R4 ;mov A, R5 ;mov A, R7 ;mov A, P1 mov B,#5 mul A, B mov B,#2 div A,...
https://obrazki.elektroda.pl/9151185000_... Druga część artykułu o najtańszych nowych mikrokontrolerach z roku 2017. Ekosystem developerski Środowisko developerskie mikrokontrolera ma ogromny wpływ na jakość pracy z nim i w konsekwencji - na produktywność. Na to składają się różne czynniki – jakość IDE, dostępne biblioteki, płytki...
Jak mogę wykorzystać rezonator kwarcowy 32768Hz do wytworzenia przebiegu prostokątnego o częstotliwości 50Hz lub 60Hz do taktowania układu zegara LED TMS3450NL? Wprowadzenie Dziękuję za pytanie dotyczące wykorzystania rezonatora kwarcowego 32,768 kHz do wygenerowania przebiegu prostokątnego o częstotliwości 50 Hz lub 60 Hz dla taktowania układu zegara...
Jednofazowy falownik zrobi, całkiem przyzwoicie, na pojedynczym timerze z PWM z deadtimem zrobionym sprzętowo. Trójfazowego na byle czym nie zrobi, albo zmuszenie skromnych zasobów AVRka do tego będzie wymagało więcej pracy niż opanowanie timera w STMie. Ograniczeniem w 8bit procku taktowanym 16MHz jest przede wszystkim szybkość, sinusa nie policzy...
Przenosisz do rejestrów x. Mnożenie w tym przypadku również musisz wykonać na rejestrze x. Choć wynik oczywiście w takim przypadku jest w dx:ax, to jednak możesz śmiało starszą część olać, jeśli wcześniej wprowadzi się tylko zabezpieczenie przed przekroczeniem zakresu. Dodawanie tak samo - na rejestrze x (wcześniej dla pewności możesz wyzerować część...
Przecież wszystkie opisy komend masz w datasheet: SUBI - odejmij stałą od wartości rejestru -> SUBI r16,38 - odejmuje od zawartości rejestru liczbę 38 MUL - mnożenie bez znaku - > MUL r16,r17 - mnoży rejest r16 z rejestrem r17 a wynik wrzuca do rejestrów r1 i r0 SBIC - pomiń następny rozkaz jeśli bit w rejestrze I/O jest równy 0 -> SBIC PINB,3 - jeśli...
Znam to kombinowanie jak koń pod górę.. ;) Zazwyczaj jak chce się zrobić taki zabieg to jedna linijka ale w Lua to może być wyzwanie więc powodzenia :) Możesz tez to obejść i przesunięcia bitowe potraktować jako mnożenie bądź dzielenie przez 2*n czyli np.: <<3 jest równoważne pomnożeniu wyniku przez 8
Ja bym zrobił tak: Rejestr(y) wejściowe. Rejestr(y) wyjściowe. Rejestr konfiguracyjny/statutu Wklepujesz dane do rejestrów wejściowych. Do bitów powiedzmy 0...2 rejestru statusu wklepujesz zakładaną operację. Np: 000: dodawanie 001: odejmowanie 010: mnożenie 011: dzielenie 100: pierwiastkowanie Zapis do rejestru statusu rozpoczyna operację i ustawia...
Witam! Od pewnego czasu interesuję się ?P a dokładniej najmniejszymi AVR i gdy postanowiłem zabrać się za pierwszy projekt pojawiły się oczywiście problemy. Wiem ,że po przechwyceniu wart. przez timer1 jest ona od razu dzielona na 2 części i zapisywana do odpowiednich rejestrów(ICR1H i ICR1L) i w tym momencje zaczynają się schody, potrzebuję na CAŁEJ...
No! Dzięki! Rzeczywiście nie takie to trudne:) Użyj klasycznego mnożenia liczb wielobajtowych, kilka mnożeń i kilka dodawań. Klasyczne mnożenie liczb wielobajtowych, może dotyczyć liczb np. czterobajtowych? lub więcej? Gdzie o tym mogę poczytać?. Czy w trakcie wykonywania operacji wielobajtowych lepiej używać stosu czy rejestrów i przełączać się między...
What? Co tu na kartce liczyć? Przecież to są operacje z początków podstawówki - mnożenie i dzielenie. Uwzględniając te wszystkie dzielniki i mnożniki oraz PLLa najbardziej skomplikowana operacja to może max 7 operacji, więc spokojnie wszystko mieści się w mojej głowie. Używam CubeMX miedzy innymi dlatego, że wpisuję częstotliwość oscylatora, żądaną...
A dlaczego od razu nie użyłeś mnożenia? Ależ to jest mnożenie. A to mnożenie dwóch liczb jednobajtowych wygląda mi na mnożenie jednej liczby przez 2. Tak, rozkaz ROL łącznie z LSL jest wykorzystywany do mnożenia dwóch liczb przez dwa. Dlatego kompilatory dobierają sobie do potrzeb: Zauważ, że tak, czy owak w przykładach które podałeś trzeba załadować...
Dodawanie i odejmowanie z przeniesieniem to chyba najprostsze operacje ;) i wcale nie takie wolne. Mnożenie też jest szybkie. Zdecydowanie ładowanie zmiennych do rejestrów może być dłuższe. Jak chcesz mieć wydajnie to nie mierzysz czasu i tyle :) Jeśli pomiar trwa więcej jak 3% algorytmu, to imho nie ma sensu, poza początkowym testem na bawienie się...
Witam, Potrzebuję zbudować mnożarkę dwóch wektorów o długości 512-bit każdy. Posiadam układ Spartan3E 500 dysponujący 20 mnozarkami 18x18 .Zrealizowałem mnożenie dwóch licz binarnych o długości 512 bit-ów - mnożenie wg. algorytmu "shift-add". W najgorszym wypadku mnożenie trwa 512 cykli zegara. Naturalnie architektóra ta została syntezowana do rejestrów...
Jak zwykle jesteś Wielki Zumek:) A teraz jeszcze pytanie z innej beczki:) Jak, pomnożyć liczbę 255 raz 4,8? :P Bo fmul z tego co widzę umożliwia mnożenie ułamków mniejszych niż 4... [1N,7Q] Powiedzmy, ze wiem, ze mogę pomnożyć 255*48 i odpowiednio wyświetlić przecinek (za pomocą mul). A jak chciałbym użyć fmul? Pozdrawiam Łukasz
Pozostaje: tablica do każdej częstotliwości, skalowanie elementów z tablicy albo dodatkowy klucz na linii zasilającej mostek. Tablic dużo nie zmieścisz, zwłaszcza 100-elementowych. Mnożenie w przerwaniu - mała szansa, że zdążysz. Dodatkowy klucz, to niepotrzebna rozbudowa sprzętu. Ostatecznie można wykorzystać istnienie rampy, czyli fakt, że częstotliwość...
Jak to zwykle na początku bywa warto ściągnąć jakiś kurs. Polecam też książkę Dolińskiego "Mikrokontrolery AVR w praktyce" (przede wszystkim bardzo dobrze opisane komendy assemblera wraz z przykładami) - przykłady są na 90S2313, ale maja 90% wspólnego z wyższymi wesjami. Ostatnio wyszła nowa książka "Mikrokontrolery ATmega w praktyce" czy jakoś tak...
Witam serdecznie, podczas pisania programu na PLC Fatek'a napotkałem pewien problem. Chciałbym aby na podstawie czasu pracy palnika olejowego oszacować bieżące zużycie paliwa wiedząc, iż dysza która jest aktualnie zamontowana spala 0.4 galona na godzinę (1.51 litra). No i tutaj pojawia się problem w jaki sposób to obliczyć? Programując plc nie mogę...
Nie polemizujemy z czasem wykonywania operacji, tylko z faktem użycia tego argumentu w tym konkretnym projekcie, w którym (patrząc na posty autora) mikrokontroler będzie się nudził przez 99,99% czasu. Jasne i 99% ramu będzie puste tak jak rejestrów więc w czym problem żeby sobie coś ułatwić ? tego tyczyła się dygresja "na marginesie" Ahahaha mnożenie...
To się liczy. Wymiana może zmieścić się w 100 ms, a czasem 3 s to mało. I tak i nie. Takie dane powinny sie znajdować w DTR urządzenia a liczenie to jedynie sumowanie czasów odpowiedzi lub np: mnożenie czasów odpowiedzi przez ilość odpytywanych zmiennych. 1s to tylko przykład. Czy w tym przypadku będę musiał stosować jakieś specjalne zabiegi w TP,...
witam i podziwiam :) nie chce mi się wyciągać ZX z szafki i znowu gapić się w ten zielony monitor :) Dzięki Sinclairowi za Spectruma ! gdyby nie ten komputer to nie znałbym się na mikroelektronice. Rok temu przesiadłem się na PCta, i przekładam swoje programy na intelowskie mnemoniki '25 * 255 ORG 0 ; jeśli to "samoróba" ORG 32768 ; jeśli...
Jak masz wspólną magistralę do pamięci z kilkudziesięcioma/kilkuset procesorami to ile z nich w danym zegara cyklu może korzystać z pamięci?! Jak masz wspólną bazę danych z kilkudziesięcioma/kilkuset użytkownikami to ile z nich w danym momencie może korzystać z danych?! Nie mów że tylko jeden. Może nawet wszyscy na raz! Zależy od organizacji kontrolera...
Bo FFT jest duuuuużo szybsze. Złożoność obliczeniowa DFT to O(N^2), FFT to tylko N*log(N), gdzie N - ilość próbek. Wraz ze wzrostem N złożoność obliczeniowa FFT rośnie dużo wolniej niż bezpośredniej implementacji DFT. Dla przykładu bezpośrednia implementacja DFT dla 128 próbkek to 128^2 = 16384 operacje. FFT to około 270 operacji. Dla 1024 próbek to...
Program chyba ukończyłem: ;Program do "modyfikatora sygnału" ;Parametry techniczne dla taktowania 4MHz: ;- skrócenie czasu o wartość max ponad 2,5ms z krokiem co 10us ;- lub wydłużenie czasu o max stałą wartość ponad 20ms z krokiem co 80us ;- mnożenie czasu przez współczynnik około 1,00 do 2,55 ;- wejścia sygnałowe portB 0-3 ;- wyjścia...
Witam. Wykonaj chyba coś takiego. Dowolny A+B sumator n+1bitowy i wejścia podłącz tak: A0=W0 B0=0(zero) A1=W1 B1=W0 A2=W2 B2=W1 A3=W3 B3=W2 . . . . . . An=WN Bn=Wn-1 An+1=0(zero) Bn+1=Wn Nie potrzebne rejestry przesuwne i ich sterowanie. H.
Co to ma być? (BLUE_LED_PIN << 1) Tak realizujesz mnożenie? Nadpisujesz rejestr.
Ja mam takie zdanie że rzekoma "prostota" assemblera PICów wcale prostotą nie jest. Raz że instrukcji jest mało i żeby zrobić byle co to trzeba to poskładać ze 100 innych instrukcji (choćby mnożenie), to jeszcze jest wąskie gardło w postaci chyba tylko jednego pełnosprytnego rejestru (taki akumulator). Na AVR masz bogaty zestaw instrukcji (np. jest...
32 bity zajmują dwa kolejne rejestry (mimo, że wyznaczasz tylko np. R0 to R1 też będzie zajęty!); tak samo dzieje się kiedy mnożysz rejestr przez rejestr (lub inną wartość stałą) - wtedy wynik zajmuje dwa rejestry (mimo, że dla wyniku określasz pojedynczy rejestr).
No teraz rozumiem. Chodzi o przerzutowanie jednego zakresu w drugi :) zwykła proporcja bazująca na szerokościach. ściągamy wszystko do wspólnej podstawy... następnie dokonujemy z proporcji obliczenia MAXx-MINx = A-B x-MINx = ? ? = ((x-MINx)*(A-B))/(MAXx-MINx) następnie należy pamiętać o przesunięciu podstawy wyniku ? = ?+B; We wszystkich powyższych...
DSP mają specjalne mechanizmy, które pozwalają na uzyskiwanie bardzo dużych mocy obliczeniowych w specyficznych dla przetwarzania cyfrowego algorytmach. Mowa tutaj np o filtrach FIR, gdzie robi się wielokrotne mnożenie z akumulacją. Typowe w DSP jest to, że taką opoerację jak: mnożenie, dodawania zwiększanie/ zmniejszanie kilku rejestrów, itp jednocześnie...
Post był raportowany. Przeniosłem z: Ogólnie
Nie chciało mi się za bardzo robić tego na kompie, dlatego daje tylko zdjęcia (nienajlepszej jakości): -na pierwszym zdjęciu masz zrobiony układ "półsumatora", układ pełnego sumatora jednobitowego oraz zamiana przerzutnika JK na D (wszystko zrobione na elementach które podałeś). -na drugim jest zrobiony układ mnożący przez 3 w wersji szeregowej. Liczbę...
Dziękuje za pomoc. A czemu wartość rejestru mnożysz przez 5?
Dopisałem do poprzedniego mojego postu coś takiego, ale pewnie nie zdążyłeś zobaczyć. W bibliotekach STDPeriph znalazłem w definicjach coś takiego: Tutaj następuje mnożenie rejestru CR2 właśnie z tym bitem. O coś takiego chodzi?
(at)12pawel Pomimo wszystko tak na przyszłość, lepiej korzystać z bloków danych niż z rejestrów wewnętrznych PLC.
Witaj, Obsługa wejść i wyjść analogowych jest prosta: wartość wejścia pojawia się w jednym z rejestrów R3840-R3903 (CH0=R3840, CH1=R3841...itd); natomiast wyjścia analogicznie w rejestrach R3904-R3967 (CH0=R3904, CH1=3905...itd). Jak z nich korzystać? np. Twoje wejście CH0 to R3840, a wartość referencyjna jest umieszczona np. w R100 ---> wstawiasz blok...
w sumie nie do końca rozumiem, ale pamiętaj że IMUL mnoży liczby ze znakiem i tu najstarszy bit określa znak (MUL mnoży bez znaku). CF i OF zerowany jest jeśli wynik mieści się dokładnie w młodszej części wyniku, w przeciwnym razie ustawiane
Dzięki za odpowiedź! Chodzi bardziej o to, że mam dwa rejestry, w nich w postaci U2 zakodowaną liczbę, mam też funkcję do konwersji na normalny kod binarny. Chciałem wykonać mnożenie dwóch rejestrów, przez inne dwa i wynik, zapisując do czterech rejestrów, przesłać do LCD do wyświetlenia. No chyba, że czegoś nie zrozumiałem w Twoim poście, co jest bardzo...
Szkoda, że płyta nie pozwoli na więcej RAM-u, ale można spróbować aby system zaczynał używać pliku wymiany później przy zapełnieniu pamięci do 90-95 %. W linku opis jak zrobić odpowiedni wpis w rejestrze. https://www.tweaks.pl/optymalizacja-wyko... Można też napisać w notatniku plik tekstowy a w treści wpisać : Windows Registry Editor...
Witam, Za zadanie dostałem zaprojektować układ mnożący 2 liczby 4 bitowe. Najlepiej jakby układ zrobiony był na sumatorach 4 bitowych i rejestrach przesuwnych w lewo i prawo. Pozdrawiam i proszę o pomoc.
Zastąp mnożenie wielokrotnym sumowaniem. Ma to wyglądać dokładnie jak mnożenie w słupku na kartce tyle że na liczbach binarnych tj: jeśli na danej pozycji w drugiej liczbie jest 1 to musisz wykonać dodawanie. oczywiście pierwsza liczba musi być proporcjonalnie do bitu przesunięta w lewo. 1101 x 1010 --------------- 1 x 1100 0 x ---- 1 x 1100 0 x -----...
no dobra panowie czyli potrzebuje zmiennej 64-bitowej. Doszedlem do tego ze jak sie dwie zmienne 32-bitowe pomnozy to pierwsze 32 bity sa w rejestrze $hi a kolejne 32 w $lo. No i niestety mam ten wynik rozbity na 2 rejestry a jak chce mnozyc to musze przez jeden rejestr. Jakos da rade to zrobic??
Pozwólcie na dorzucenie jeszcze krótkiego rysu historycznego. Jeszcze nie tak dawno silna była grupa wyznawców pisania w ASM, którzy mówili bardzo brzydkie rzeczy o C - przecież nic tak nie cieszy rasowego programisty jak "ręczne" mnożenie dwóch liczb 16bit zapisanych w U2 - tylko TAK pisze się OPTYMALNIE ;). Z biegiem czasu ich argumenty bardzo straciły...
Zaprojektować układ mnożący dowolną liczbę binarną przez liczbę stałą 3. Liczba wejściowa ma być podawana z rejestru R1, a wynik zapisywany do rejestru R2. Rejestry 8-bitowe. AI: Czy układ ma być zrealizowany sprzętowo (np. w postaci schematu logicznego, VHDL/Verilog) czy programowo (np. kod w asemblerze lub C na mikrokontroler)? Schemat logiczny, tablice...
Witam, zmienna "b" jest 8 - bitowa, w pewnym momencie wykonuje się mnożenie 128 * 2 = 256, czyli dla 8 bitów zero. Warunek b > 128 nigdy nie jest spełniony. Tak na szybko, chyba ten warunek trzeba zamienić na b == 0, ale lepiej to przemyśl. Pozdrawiam
Ej - w dokumentacji NIE MA błędu, opis tam jest klarowny i prawidłowy. Fclkout = M × Fclkin = (FCCO) ⁄ (2 × P) Z tego jasno wynika, że najpierw Fclkin jest mnożone przez 2 * M * P do wysokiej częstotliwości FCCO, a następnie FCCO jest dzielone przez 2 * P. Finalnie wartość P nie ma wpływu na częstotliwość końcową. Nikt nie powiedział, że rejestry...
projektowanie rejestrów sofar rejestrów ustawianie rejestrów
wymiana grzałki kopiowanie danych między komputerami półprzewodnikowy element
wspomaganie czujnik mercedes wspomaganie czujnik mercedes
PIC18F458 – podłączenie do JDM, konfiguracja PICPgm, programowanie mikrokontrolera Intenso Video Scooter BT – użytkowanie z uszkodzonym LCD i ładowanie akumulatora