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...
tak samo jak konwersja bin->dec, tylko odejmujesz kolejne potęgi liczby 16, czyli: 1. Od zadanej liczby odejmujesz sukcesywnie 16*16 i zliczasz liczbę odjęć aż do uzyskania liczby ujemnej. Do uzyskanej liczby odjęć dodajesz jeden i już masz starszą cyfrę hex. 2. Do uzyskanej liczby ujemnej dodajesz 16*16 3. Odejmujesz sukcesywnie 16 i zliczasz liczbę...
Niestety C to nie assembler. Sam musisz zadbać o dodanie odpowiednich bitów. Nie sądzę, żeby w kompilatorze C18 było jakieś odstępstwo od tej reguły, ale mogę się mylić.
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...
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...
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...
...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...
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...
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...
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...
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...
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 -...
Na początek spróbuj uruchomić odczyt temperatury na liczbach 8 bitowych (jeden bajt) - będzie łatwiej ogarnąć w asemblerze. Wynik odebrany w 12 bitach przesuwasz w prawo 4 razy i zostaje 8 bitów. clr c ; Zamien 12 bitow na 8 mov a, temp+1 rrc a mov temp+1, a mov a, temp rrc a mov temp, a clr c mov a, temp+1 rrc a mov temp+1, a mov a, temp rrc a mov...
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,...
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...
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...
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...
http://obrazki.elektroda.pl/6709419000_1... Stworzony przez Alexandra Manna i opublikowany w serwisie Circuit Cellar system MiniEmail jest niezależnym, mikroprocesorowym klientem poczty e-mail. Jest cichy, łatwy w użyciu, energooszczędny – i co najważniejsze – odporny na robaki rozsyłane mailami. Kolejną zaletą jest też...
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)...
liczby ujemne liczby binarne assembler assembler darmowy assembler
roomba akumulator integra czujnik obecności wzmacniacz gitarowy reverb
captor aplikacji captor aplikacji
Insect Inside Monitor Screen: BenQ, LG, OLED, LCD Bug Removal Tips NVIDIA SHIELD TV, Tablet, Portable Serial Number Location and Warranty Info