Błąd jest w konwersji dekoder pokazuje to co dostaje na port . W programie brak inicjalizacji stosu . Konwersję tego typu łatwiej wykonywać odejmując od wyniku konwersji wartość przetwornika stałą i inkrementując liczbę operacji odejmowania do chwili otrzymania wartości zerowej lub ujemnej . gdy pozostała wartość będzie mniejsza lub równa zero liczba...
Bolek: 1.Żeby nie było przesunięcia tak jak mówisz, to musisz użyć liczb ujemnych. Bo jak masz liczby -20 i 20, to skalowanie x3 zamieni to na -60 i 60 - wszystko ok Jak masz liczby 10 i 20, to skalowanie x3 zamieni na 30 i 60.. środek kwadratu jest już zupełnie gdzie indziej 2.Żeby otrzymać dobrą płynność powinieneś użyc wyników z mnożenia/dzielenia...
Algorytm którego używam przesuwa bity, ale równie dobrze można dzielić tak jak piszesz, tylko jak używam dzielenia to program "rośnie" wiec chyba pozostanę przy sprawdzaniu najstarszego bitu i OR. Rośnie o kilkadziesiąt bajtów. Tyle ile ma procedura biblioteczna dzielenia liczb 16 bitowych ze znakiem. Ale pewnie dzielenia prędzej czy później będziesz...
Już kiedyś pisałem tutaj o konwersji bin->bcd. Są na to specjalne algorytmy. Ponieważ nigdy mi się nie chce ich szukać, konwersję przeprowadzam metodą łopatologiczną: 1. Odejmuję od zadanej liczby 1000 tyle razy, aż uzyskam wynik ujemny. Liczba odejmowań (pomniejszona o jeden) daje cyfrę tysięcy. 2. Koryguję liczbę po odejmowaniu (dodając z powrotem...
Cała trudność polega na wczytaniu liczby ujemnej i zapisaniu jej binarnie. Pokazanie tego w Hex proponuję załatwić 16-znakową tablicą cyfr, indeksowaną połówkami bajta (4 bity). Przy większej liczbie bajtów (potem słów 16 bitowych, itd) pamiętaj o odwrotnej kolejności: młodszy - starszy.
Jeśli przypatrzysz się wygenerowanemu kodowi, to dzięki optymalizatorowi mamy po prostu odjęcie 8-bitowe jednej zmiennej od drugiej. Ale to jest bez znaczenia dla tej konkretnej debaty, bo przecież to jak standard języka C "zrealizowany" na konkretnej implementacji (nawet nie wiemy jakiej...), to jest dalsza kwestia. Standard mówi, że operacja odejmowania...
Oto co wymyśliłem :) ORG 0 AJMP 50H ORG 50H LCALL OBLSR ; wywołanie podprogramu obliczania średniej OBLSR: POP R7 ; zdjęcie ze stosu bardziej znaczącego bajtu adresu powrotu do programu głównego i zapisanie w rejestrze R7 POP R6 ; zdjęcie ze stosu mniej znaczącego bajtu adresu powrotu do programu głównego i zapisanie w rejestrze R6 MOV R5, A ; przeniesienie...
...umie ktos to zrobic ? bede wdzieczny za pomoc ... Ta może bez zbędnych ceregieli "podam na tacy" gotowca , a Ty spróbuj zrozumieć jak toto działa :D .include "8515def.inc" .def zero = r0 .def bcd = r16 .org 0x0000 rjmp start .org INT_VECTORS_SIZE start: ldi bcd,low(RAMEND) ldi r17,high(RAMEND) out SPL,bcd out SPH,r17...
Konwersja bin->bcd Od zadanej liczby 2-bajtowej odejmujesz kolejne potęgi liczby 10, czyli w przypadku liczby mniejszej niż 1000 robisz tak:: 1. Od zadanej liczby odejmujesz sukcesywnie liczbę 100 i zliczasz liczbę odjęć aż do uzyskania liczby ujemnej. Do uzyskanej liczby odjęć dodajesz jeden i otrzymujesz najstarszą cyfrę BCD (setki). 2. Do uzyskanej...
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...
Dziękuję za sposób z long'ami. przynajmniej liczba ujemna mnożona przez siebie daje dodatnią:) w tym przypadku nie zależy mi ani na prędkości ani na objętości kodu, po prostu mam moduł MODBUS na atmega32 i tkneło mnie aby zrobić także barometr. Zajmuje to razem 24% FLASH'a a tempo działania programu niezbyt mnie interesuje ( a niech nawet sobie to minute...
Tak jak napisałem w pierwszym poście - nie jest to żadne "rozwiązanie", bo jak widzisz po moim kodzie assemblera __errno to FUNKCJA, a nie zmienna. Więc jeśli kiedyś faktycznie trafi się w Twoich danych coś co wywoła błąd (np. obliczenia dla NAN czy INFINITY, pierwiastek dla liczby ujemnej czy coś takiego), to zaowocuje to "wywaleniem" się Twojego programu...
To że on wywołuje funkcję, to jeszcze nie znaczy że w tej funkcji wszystko jest w 100% programowo - równie dobrze tam może być tylko kilka instrukcji, w tym ta jedna magiczna. Sprawa wygląda tak, że funkcja typu sqrt() czy sqrtf() ma pewne wymagania, których nie można spełnić w 100% sprzętowo - np. jeśli podasz do tej funkcji liczbę ujemną, to ona powinna...
Po pierwsze - WSZYSTKO jest w komentarzu powyżej tej tabeli, tam jest podana postać assemblerowa - jak sobie ją skompilujesz, to otrzymasz DOKŁADNIE taki sam efekt. Ja pierniczę. Nawet przeszło mi to przez myśl, ale od razu to odrzuciłem bo nie sądziłem że ktoś inny niż ja jest w stanie coś takiego zrobić. A co dopiero Ty, zwolennik uniwersalności i...
https://obrazki.elektroda.pl/3753373600_... Mikrokontrolery, zwłaszcza ośmiobitowe, wydają się być generalnie łatwymi w użyciu układami. Mamy bowiem do dyspozycji prosty komputer i garść zwykle mało skomplikowanych peryferiów. Wystarczy napisać odpowiedni program i tyle. Ale nawet te proste z natury układy mają funkcje i możliwości,...
tu masz liste rozkazów http://www.spectrum.8bit.pl/z80cpu/z80cp... z z80 sie nie bawiłem :) tylko 6502 :) ale moze Cie naprowadze -najpierw sprawdz znaki czy liczby są ujemne (and a,#80 ..cmp a,#80 jz xxx) -jeśli tak ustaw jakiś bit w pamieci ze tak jest ( jeśli obie to nie ma problem, jeśli jedna wo wynik trzeba na końcu też xor-owac)...
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...
Witam, Zacząłem realizację pewnego przyrządu (wariometru) z wykorzystaniem tego mikrokontrolera. W pewnym miejscu zajdzie potrzeba obliczenia wyrażenia przedstawionego na poniższym screenie http://obrazki.elektroda.net/17_13186757... Zastanawiam się w jaki sposób można zmusić rdzeń 8051 to policzenia takiej potęgi. Na pierwszy rzut oka wydawało...
Też kiedyś pisałem w asm ale to było w czasach gdy kompilatory C były drogie i niezbyt inteligebntne. Teraz czasem robię wstawki w asm ale to bardzo rzadki przypadek. Dlaczego wolę C? Np taki kod: [syntax=avrasm]b2d ; konwersja 16-bit bin na dec ; dzielenie przez 1000d = 0x03E8 movlw0x03 movwfxw1 movlw0xE8 movwfxw0 callb2da movwfst1 ; dzielenie przez...
V553 Meratronik czy coś tam :) Wykopałem opis pinów w gnieździe, przytaczam: Sygnały informacyjne: 1:4 - masa 5:8 - najmniej znaczaca dekada LSB 9:12 - kolejna dekada 13:16 - kolejna dekada 17:20 - kolejna dekada 21:24 - najbardziej znacząca dekada MSB (wykozystywany tylko 1 bit) 25 - informacja - dodatnia polaryzacja napięcia 26 - informacja - ujemna...
Potrzebuję zmierzyć w programie czasy reakcji użytkownika i czas operacji. Dokładność ma być maksymalna, interesują mnie milisekundy. Oczywiście najczęściej procesor "odzywa się" co jakieś 55 milisekund, ale o to akurat mniejsza. Bo problem leży w odejmowaniu. Dokonując pomiaru czasu w większości języków programowania otrzymuje się cztery zmienne -...
http://obrazki.elektroda.pl/4525945400_1... W niniejszym artykule zostanie objaśnione, jak używać takich modułów do bezprzewodowego odczytu danych z czujnika temperatury i wyświetlania ich na ekranie komputera. Do pomiarów wykorzystywany jest czujnik temperatury wbudowany w mikrokontroler MSP430F2553. Kod źródłowy jest niewielki i bardzo...
liczby ujemne liczby binarne assembler assembler darmowy assembler
zamiennik 2sc1815 oscyloskop karty dźwiękowej alternator spalony wirnik
wyświetlacz płyty amica obliczyć przekrój kabla
OKI MC 883 nie pobiera papieru A3 z podajnika Jak zdemontować panel radia Samsung MM-C8?