(at)spec220 A jak jest w tym środowisku którego używasz z obsługą peryferiów mikrokontrolera? Czy wszystkie timery, USARTy, I2C, SPI, ADC, DAC, są obsługiwane? czy można ustawić każdy tryb pracy, na który pozwala hardware, czy tylko te popularne? Jak z komunikacją, powiedzmy że chcesz zrealizować DMX512, Modbus RTU, albo LIN, czy masz do tego gotowy...
A skąd jest ten drugi kod? Bo jest bardziej rozbudowany od pierwszego i nie nadążam za Tobą to byl ten sam kod co wczesniej podalem tylko wycialem sam fragment po strcmp i w komentarzach rozpisywalem jak kazda linijke rozumiem Oj, raczej nie, w tym drugim kodzie jest więcej porównań/warunków i skoków, ale go nie analizowałem, więc nie wiem jak działa...
W jakim kodzie są dodawane liczby - bin czy BCD? I w jakim kodzie ma być wynik bo jeśli w bin to dodając do siebie dwie 11-bitowe liczby potrzebujesz tylko dwóch rejestrów 8 bitowych na reprezentacje wyniku.
Zobacz na http://www.avrbeginners.net AVR Assembler->Math->Multiple byte maths. Są tam co prawda krótkie, ale dobrze opisane przykłady operacji na liczbach 2 i nawet 4 bajtowych: dodawanie, odejmowanie, porównania itp. Pozdrawiam
prosze o pilna pomoc mam teraz kolokwium z assamblrow ktore trwa 2 godz i mamy dostep do internetu. zadanie to Napisac sekwencje rozkazow zamieniajacych 50 bajtow spod adresu 200 z odpowiednimi bajtami spod adresu 300. jezeli warosci zamienionych bajtow sa rowne to wstawiamy ich sume w obydwa miejsca. jednoczersnie od adresu 400 maja sie znajdowac sumy...
Napisz jaką potrzebujesz dokładność, jeśli niewielką to najlepiej użyć gotowej tablicy. Jeśli dużej to trzeba rozłożyć funkcję pierwiatkowania np. na szereg Taylora i wtedy obliczać kolejne przybliżenia, ale to wymaga napisania procedur operacji zmiennoprzecinkowych (głownie mnożenie i dodawanie zmiennoprzecinkowe).
Poza tym pobieżnie przejżałem DS ATTiny i nie widzę instrukcji analogicznej do DIV w 8051?? Jak w nim dzielić liczby?? A czy znalazłeś MUL? ;) Do takich obliczeń niestety trzeba pisać własne funkcje. Można mnożyć i dzielić poprzez wielokrotne dodawanie lub odejmowanie danej liczby, ale to jest oczywiście dosyć mało optymalna metoda. Oczywiście mnożenie...
Wogóle nie działa ten program trzeci wienc nieweim co to ma wspólnego z tym co jest napisane. Ostatni rozkaz byl blednie zapisany ma byc JR NZ,przesuniecie lub JP NZ,adres etykiety. Oczywiscie w wersji ze skokiem wzglednym kompilator musi wyliczyc wartosc przesuniecia jaka ma byc umieszczona w kodzie na podstawie podanej etykiety. L1 i L2 to liczby...
add ZL,offset To pewnie nie to ale zamień to dodawanie na dodawanie pełnej wartości (całego słowa 16 bitowego - w helpie jest z addc i add) i jeszcze to: ldi ZH,high(tablica_cyf<<2) ldi ZL,low(tablica_cyf<<2) Ja tam mam przesuwanie <<1 a to <<2 to chyba przesuwa 2 razy i pewnie tu leży błąd.
Nie wiem czy o to ci chodzi. mov ax,liczba1_pozycja0 add ax,liczba2_pozycja0 ; cmp ax,#4095 ; sprawdzenie zakresu wyniku jbe w_zakresie and ax, #4095 ; ograniczenie do 12 bitów. setc w_zakresie: mov wynik_pozycja0,ax mov ax,liczba1_pozycja1 adc ax, liczba2_pozycja1 ; dodawanie z przeniesieniem cmp ax,#4095 jbe w_zakresie1 and ax, #4095 setc w_zakresie1:...
Chodzi o procesor ST32F103 z rdzeniem Cortex-M3. Wykonuje na przykład dodawanie dwoch liczb wielokrotnej precyzji (n-bitowej i m-bitowej). Liczby zapisane sa w systemie o podstawie 2^32. W assemblerze realizuje tylko czesc operacji na slowach. # IntLongWord ulFastMathAdd (IntWord uxA, IntWord uxB) .global ulFastMathAdd .thumb_func ulFastMathAdd:...
Witam. Szkielet programu asemblera na 51' zamieszczałem w poście pod koniec wątku: [url=http://www.elektroda.pl/rtvforum/vi... Dodawanie 3 liczb 8-bitowych - może się Koledze przyda. Do kompilacji najczęściej używam ASEM'a. Pozdrawiam.
Ok. Już wszystko jest jasne. Jednak mam problem w stronę odwrotną, a dokładniej: Mam zadeklarowaną stałą w C, w assemblerze chciałbym wyciągnąć jej adres w pamięci. Robię dokładnie tak jak podane w przykładzie podanym przeze mnie (czyli w assemblerze dodaję .extern), kompilator podmienia nazwę zmiennej na jej adres, ale jest mały problem. Adres ten...
Mnóstwo instrukcji assemblera nie może być wykonanych w jednym cyklu zegara... w sumie wszystkie wykonywane są w tej samej liczbie i zależy ona od PIPELINE'u... pobranie instrukcji, dekodowanie, wykonanie, zapis do pamieci, akumulacja wyniku. To jest taki najprostszy pipeline i umożliwia on właśnie wykonywanie instrukcji w "jednym" cyklu zegara.......
bez urazy, kolego olekewaagata, zanim zaczniesz kogoś pouczać przeczytaj tekst ze zrozumieniem! ;)) Autor wątku miał problem z propagowaniem przeniesienia - moja odpowiedź dotyczy DOKŁADNIE zalecenia, jaką instrukcją uwzględnia się przeniesienie. A podany przeze mnie przykład dotyczy sumowania, z jakim ma problem autor - czyli dokładnie liczby _16bit_...
A konkretnie to co z tego jest niezrozumiałe (po zajrzeniu do opisu instrukcji 51)? Może ujmę to tak : Chciałem opisać każdą linijkę co oznacza , jestem serem z assemblera dlatego nawet jeśli przeczytam definicje funkcji np add - ADD A, #dana · do akumulatora dodawany jest argument stały (8-bitowa liczba) to Jakbym dostał pytanie co się dzieje...
To samo miejsce w pamięci operacyjnej można określić za pomocą kilku różnych adresów logicznych. Dąży się więc do tego, aby adresy logiczne były zapisywane w formie kanonicznej, czyli należy je tak zapisać, aby offset był liczbą 4 bitową, a segment 16 bitową. 23456 = 2345:0006H chociaż nie trzymając się formy kanonicznej adres logiczny może również...
Działa dobrze, możesz sobie sprawdzić nawet na kartce papieru. Wystarczy, że weźmiesz pod uwagę specyfkację formatu U2, jak binarnie zapisana jest liczba -2 i co się stanie, gdy "na kartce" dodasz do niej np. liczbę trzy. Poniżej zamieszczam program testowy dla 32/64-bitowego systemu operacyjnego, przedstawiający składniki i wynik w trzech systemach...
To działa tak samo dla dowolnej ilości bajtów. Liczbę wejściową wysuwasz z najstarszego bitu najstarszego bajtu Czyli przesuwasz liczbę 32 bitową (mnożysz przez 2). Wysunięty bit (w znaczniku przeniesienia) wprowadzasz do najniższego bitu najniższej tetrady liczby BCD. Przed każdym kolejnym przesunięciem sprawdzasz każdą tetradę czy nie jest >=5...
Witam wszystkich. Mam problem i to poważny. Potrzebuję kogoś, kto zna się na pisaniu programów w asemblerze. Niżej podaję treści takiego zadania: 1. Napisz program, który oczyszcza ekran, umieszcza wskaźnik w wybranym miejscu, prosi użytkownika o podanie dwóch wartości, dodaje je i wyświetla sumę. Użyj procedur Clrscr,Gotoxy,Writestring,Readint i Writeint...
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ęść...
Zgodnie z opisem: Dodawanie dwóch liczb wykonuje się instrukcją ADD (bez uwzględnienia przeniesienia), która dodaje drugi operand do pierwszego, a wynik umieszcza w tym pierwszym. Możliwe wariancje (r-rejestr, m-adres, s-stała liczba określa rozmiar): r/m8,r8 r/m16,r16 r/m32,r32 r8,r/m8 r16,r/m16 r32,r/m32 AL,s8 AX,s16 EAX,s32 r/m8,s8 r/m16,s16 r/m32,s32...
Musisz jeszcze pamiętać że akumulator jak i rejestry prawdopodobnie są ośmiobitowe a co za tym idzie nie możesz sobie tak bezmyślnie dodawać szesnastu liczb i trzymać ich sumy w akumulatorze bo się tam ta suma nie zmieści. Wynik musisz zapisywać na dwóch bajtach i dopiero dodawać kolejną bajtową liczbę. Zazwyczaj w asemblerze, ale to zależy od konkretnego...
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...
Witam. Mam problem, ponieważ nie potrafię zapisać liczby zmiennoprzecinkowej w assemblerze. Procesor dostaliśmy na laboratoriach, odpala sie go w matlabie. Mamy troszkę okrojoną ilość rozkazów(napisze je niżej). Mantysa i wykładnik maja byc po 16 bitów. Te liczby mam dodawac, odejmowac, mnożyć i porównywać. Lecz w czym mam największy problem? Nie potrafię...
Operacje arytmetyczne i logiczne w procesorze wykonuje jednostka arytmetyczno-logiczna (ALU). Generalnie ma dwa wejścia i jedno wyjście (np 32bitowe dla procesora 32b) i współpracuje z rejestrami procesora o takiej szerokości. Dodatkowo ma wejście i wyjście do przerzutnika przeniesienia, przerzutniki flag (informacja o przepełnieniu w ostatniej operacji)...
Masz napisać procedury mnożenia liczb: 1 bajtowej przez 1 bajtową (8x8) wynik będzie 16 bitowy (2 bajty) 2 bajtowej przez 1 bajtową (16x8) wynik będzie 24 bitowy 3 bajty 2 bajtowej przez 2 bajtową (16x16) wynik będzie 32 bitowy (4 bajty) Procedura przebiega tak w kodzie naturalnym binarnym: 1. Przygotowujesz rejestr wyniku o długości równej sumie ilości...
przemo_wielki, dzieki bardzo za ten kod, teraz juz rozumiem gdzie robilem źle, musze jeszcze teraz przerobic ten program (a wlasciwie jako drugi program na zaliczenie) abym mogl wprowadzac liczby wielocyfrowe (powiedzmy tylko dwu lub trzy) i program rowniez ma je sumowac i wyswietlac sume koncepcje mam taka, ze liczby te (a wlasciwie zmienne) musze...
Hm.. można by zrobić tak: uruhomić timer, niech zlicza czas, przerwanie ustawione na zbocze narastające i opadające, wyzwolenie przerwania zapisywalo by do kolejki fifo stan licznika poczym licznik był by zerowany, i następował powrót z przerwania, parzyste wyraz opisywały by stan wysoki (ile trwał) a nieparzyste - niski, można by jeszcze jakoś skalibrować...
Witam, aktualnie na pracowni wałkujemy DSM-51 i jest dla mnie sporo niewiadomych i prosiłbym o wyjaśnienie/pomoc. Do rzeczy, pierwsza sprawa; - sterowanie diodą i brzęczykiem, korzystałem z poniższego kodu: LEDEQUP1.7 BUZZER EQU P1.7 LJMPSTART ORG100H START: LOOP: CPLLED CPLBUZZER MOVA,#10;czekaj czas 10*100ms=1s LCALL DELAY_100MS LJMPLOOP Opis: definicja...
Stary post ale , jest sposob aby przerwania od timera wystepowaly w rownych(co do jednego cylku) z gory okreslonych odstepach. Przy kwarcu 12MHz aby odmierzac rowne czasy np 20ms wystarczy na poczatku przerwania wpiac taka procedurke ktora modyfikuje odpowienido rejestry TL0 i TH0 i uwzglednia opoznienie czasowe. t0VAL equ 20000 ; czas miedzy przerwaniami...
https://obrazki.elektroda.pl/5617037700_... Amerykańska Agencja Bezpieczeństwa Narodowego (NSA) zdecydowała się na upublicznienie i darmowe udostępnienie oprogramowania GHIDRA w wersji 9.0. Jest to specjalne środowisko do inżynierii wstecznej plików binarnych, które od ponad dekady wykorzystywane jest przez pracowników NSA do wykrywania...
Teraz już sprawy idą w lepszym kierunku. Problematyczny jest jeszcze sposób deklaracji zmiennych w programie. Proponuję pobrać z internetu dowolny assembler na 8051 (np. ASEM-51), wtedy wszystkie błędy składniowe można na bieżąco sprawdzać. Struktura programu (dowolnego) może wyglądać np. tak: - deklaracja zmiennych i stałych, - instrukcja skoku do...
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...
Pokaż jak wygląda całe przeliczenie, może da się jeszcze coś wymyślić. Teraz wygląda tak (wersja robocza): Trzeba tak dobierać mnożniki żeby dzielniki były potęgą dwójki. Czyli w tym przypadku zwiększyć dzielnik ze 100 na 128, i tle samo razy zwiększyć mnożnik, czyli ze 127 na 163: uint32_t newsample = (volume_coefficient *newbuffer Tutaj chyba nie...
wygląda to tak dla każdego dźwięku w stroju równomiernie temperowanym: A to 440Hz, A# to 466,16Hz czyli pierwiastek 12 stopnia z 2 wyższa częstotliwość. 1 cent wyżej to częstotliwość wyższa o pierwiastek 1200 stopnia z 2. Wartość, którą należy wpisać do SIDa, określająca częstotliwość oscylatora to: częstotliwość dźwięku * 0,0596. Także jak widzisz...
http://obrazki.elektroda.pl/3751212700_1... Układ jest dedykowany na ATtiny2313, ja przy okazji zagospodarowałem ostatni AT90S2313, jaki miałem i popełniłem miernik pojemności na nim. Krótki opis jak to działa: Miernik mierzy pojemność dołączonego kondensatora ładując go stałym prądem z lustra prądowego Q1, Q2 (2x BC557), które dodatkowo...
https://obrazki.elektroda.pl/8661538600_... Zainspirowany podcastami o historii komputerów (podcast #19 - Słowo o architekturze i słowniczek pojęć By lepiej zrozumieć zagadnienie pamięci, musimy najpierw poznać architekturę, a dokładniej to części składowe procesora. Nie będziemy zagłębiać się w tajniki najnowszych Ryzenów czy i9,...
http://obrazki.elektroda.pl/6101342600_1... Autor niniejszego opisu planował testować swego czasu tagi RFID na częstotliwość 150 kHz, jednak nie posiadał własnego generatora sygnałowego – dlatego postanowił wykorzystać w tym celu mikroprocesor ATMega88 i bezpośrednią syntezę cyfrową sygnału. Zamiast jednak sięgnąć po gotowe rozwiązanie...
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...
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...
https://obrazki.elektroda.pl/5334725900_... LabVIEW to znane wielu inżynierom środowisko programowania w graficznym języku G, dedykowane głównie do zastosowań w systemach laboratoryjnych i kontrolno-pomiarowych. Wiele razy pisaliśmy już na forum m.in. o warsztatach i szkoleniach związanych z tym środowiskiem. Teraz, z okazji przyznania...
https://obrazki.elektroda.pl/4689387300_... Jak niedawno zapowiadałem, prace nad projektem efektora do miksera Behringer DJX700 praktycznie zostały zakończone. Na chwilę obecną mam działający układ wraz z devboardem i ukończone programy efektów. Ale po kolei. O samym procesorze FV-1 możecie poczytać w innych moich tematach; konkretnie...
http://images31.fotosik.pl/133/fb5cd070f... Chcialbym dzis przedstawic konstrukcje, ktora bedzie czescia mojej pracy magisterskiej. Jest to kontroler do matryc LCD oparty o uC wraz ze specjalizowanym ukladem driver'a matrycy. OVERVIEW: Glowna idea projektu jest stworzenie calkowicie autonomicznego urzadzenia, ktore pelniloby role ukladu posredniczacego...
https://obrazki.elektroda.pl/2568884200_... Witajcie moi drodzy Zapraszam na kolejną część mojego tutoriala PIC18F2550 i kompilatora SDCC . W tej części zademonstruję jak używać wyświetlacza 7-segmentowego z PIC18F2550 . Kod obsługi wyświetlacza będzie oczywiście napisany w oparciu o przerwania i timery . Cały proces powstawania układu...
http://obrazki.elektroda.pl/6035825200_1... Witam, w chciałbym się podzielić moim ostatnim tworem jaki powstał z chwili potrzeby. http://obrazki.elektroda.pl/2685746200_1... http://obrazki.elektroda.pl/2820438100_1... http://obrazki.elektroda.pl/1850987000_1... http://obrazki.elektroda.pl/4784630600_1...
https://obrazki.elektroda.pl/5009750700_... Witajcie moi drodzy Oto druga część mojego praktycznego tutoriala dla ośmiobitowego mikrokontrolera PIC18F2550 od Microchipa i programatora SDCC . W tym temacie omówię podstawowe operacje cyfrowego IO na prostych przykładach. Spis części (osobnych tematów) tutoriala Tutorial podzielony jest...
http://obrazki.elektroda.pl/3234430100_1... W Wyszukiwanie, zbieranie i analizowanie otwartych komponentów systemu Najpierw zacznijmy od wyjaśnienia co to jest oprogramowanie otwarte czy też dostępne na licencji GPL (trochę teorii). Narzędzia wykorzystane w routerze, takie jak Linux, U-Boot i inne dostępne są na licencji GPL, co oznacza...
Witam. Mam maly problem z programem w assemblerze. Temat programu to : wyprowadzanie liczb 16-bitowych na ekran w postaci dziesietnej Problem wyglada tak, ze program powinien wyswietlac liczby od 0-65535, niestety liczby 65536-65539 tez moga byc wpisane. czy moglby ktos sprawdzic moj kod i ewentualnie poprawic tak zeby wyswietlalo poprawnie? (program...
https://obrazki.elektroda.pl/8257460300_... https://obrazki.elektroda.pl/3031111400_... Chris Mitchell Wyobraźmy sobie prosty eksperyment – stoimy z pistoletem w komorze bezechowej i naciskamy spust. Słyszymy dźwięk wystrzału, jednakże w niczym nie przypomina on tego, co słyszymy na filmach czy prawdziwych strzelnicach....
Witam, Mam do wykonania następujące zadanie: dodawac do siebie poszczególne komórki obszarów pamieci, wynik dodawania umieszczac w drugim obszarze. Program ma sprawdzac poprawnosc podanych adresów – wynik w akumulatorze B. Program ma sie zaczynac od adresu 0020h. Dane wejsciowe: 0010h, 0011h - dwie komórki pamieci zawierajace adres poczatku pierwszego...
dodawanie bitowe assembler dodawanie dodawanie assembler
zamek błysk napięcie żarówki projektora otwierać klapa elektryczny
rozdzielnica natynkowa bateria parkside styki
Jak odzyskać usunięte wiadomości na Messengerze? Kody do radia Android Eunavi: Jak je znaleźć?