Po pierwsze, 8051 i AVR to całkowicie inne rdzenie, więc na pewno 8051 będzie się inaczej programowało w asemblerze niż AVR. Mam tu na myśli nie tylko inny zestaw rozkazów, ale także i całkowicie odmienne architektury, co zmienia nieco styl pisania programów. Kolega darkonel ma częściowo rację, jeśli zrozumiesz specyfikę programowania w asemblerze 8051,...
skoro Reaper82 pisze w C, to cu mu sugerujecie bascom. Zgodzę się z tym, że ta funkcja zjada dużo pamięci, ale jesli jest wykorzystywana kilka razy kolejene przywołania nie sa już tak straszne. Mam ATMega32 i sprintf uzywane jest tam kilkadziesiąt razy i jakos mi nie brakó miejsca. Jak komuś zależy na pamięci to nie pisze ani w c ani w bascomie. Pozostaje...
Przede wszystskim trzeba wiedzieć co to za procesor. Domyślam się że 8-bit - więc nie ma instrukcji do dzielenia 16-bit (pomijam jakieś 'super-wynalazki' z układem arytmetyki zmiennoprzecinkowej itp.) Trzeba napisać lub poznać podprogram który dzieli liczby 16 bitowe i według tego się kierować.
Witam. Wydaję mi się że obliczenia powinieneś przeprowadzać na liczbach co najmniej 16 bitowych, 8 bitów może być za mało. Czy realizujesz regulację prędkości czy położenia takiego silnika? Ja osobiście implementowałem kilka regulatorów na AVRach, ale pisane były one w języku C. Między innymi typowy regulator PID, jednak by uzyskać dość dobrą dokładność...
format liczby typu IEEE float (tzw. real*4 format): SXXXXXXX XMMMMMMM MMMMMMMM MMMMMMMM gdzie S - znak, X - wykładnik, M - mantysa S=0 - znak dodatni S=1 - znak ujemny mantysa jest to stałoprzecinkowa część ułamkowa liczby x=1.MMMMMMMMMMMMMMMMMMMMMMM wykładnik to stałoprzecinkowa liczba: y = XXXXXXXX - 127 wartość liczby to: z = (-1)^S * x * 2^(y) Mam...
Architektura AVR była projektowana specjalnie do jezyka C we współpracy z programistami z firmy IAR. Dzięki temu AVR są wygodne w programowaniu zarówno w C jak i asemblerze. Kiedyś używałem PIC zarówno w asm jak i w C (w C tylko z serii PIC18). Pisałem też na inne procesory w asm (m.in. 386, MSP430, DragonBall, ColdFire) Pisząc w C oczywiście nikt nie...
Najpierw napisz w jakim assemblerze, bo na x86 mi to nie wygląda, a w zasadzie x86 na pewno to nie jest. O ile mnie pamięć nie myli to jest asembler dla 51. Poza tym będzie trochę zabawy, bo tutaj trzeba skorzystać z jednostki zmiennoprzecinkowej. Tutaj jest taki kod na szybko, ale działający tylko na liczbach całkowitych, bo z jednostki zmiennoprzecinkowej...
Witam, czy może mi ktoś wytłumaczyć jaka jest różnica pomiędzy wykonywaniem operacji na liczbach zmiennoprzecinkowych w przypadku procesora stałoprzecinkowego i zmiennoprzecinkowego gdy piszę program w C? Czy cos takiego jak "skalowanie zmiennych" dostępne jest z poziomu C czy to sprawa asemblera? Wiem tylko tyle ze problemy pojawiają się gdy chcę dodać...
Liczba zmiennoprzecinkowa dla uP to min. cztery bajty. Poczytaj o liczbach typu "float" wg. standardu IEEE 754 jak są przedstawiane. http://en.wikipedia.org/wiki/Floating_po... Co do działań na tych liczbach to przyznam się szczerze, że nie wiem co tam asembler na nich wyrabia (pisze wszystko w C). Spróbuje napisać prosta funkcję i podglądnąć co tam...
Do dzielenia liczb w asemblerze bez znaku służy komenda div lub idiv . Formaty DIV reg DIV mem Dzielna musi być w AX lub DX:AX lub EDX:EAX. Dla AX wynik jest w AL a reszta w AH (operandy 8bit) Dla DX:AX wynik w AX reszta DX (operandy 16 bit) Dla EDX:EAX wynik w EAX reszta w EDX (operandy 32 bit) Do dzielenia ze znakiem służy idiv Jak chcesz się bawić...
W pierwszym przypadku w celu jak największej dokładności czasu opóźnienia jest wyliczana liczba przebiegów wewnętrznej pętli (która wykonuje się w 3 lub 4 cyklach, zależnie od tego, czy licznik może mieć 1 bajt, czy musi mieć 2 bajty) - te obliczenia są wykonywane na liczbach zmiennoprzecinkowych. Co do drugiego kodu, nie jest on funkcjonalnie taki...
C pod windowsem, asembler na Dosie\
Panowie, panowie - nie rozpędzajcie się w tych wyjaśnieniach o rdzeniach 8-bitowych i dziwnych myślach programistów tworzących funkcje typu _delay_ms() Jak dla mnie - bezsens. Nawet marnowanie czasu powinno być zrealisowane prosto , a nie w oparciu o software'owe biblioteki umożliwiające przetwarzanie double.... Bo jest prosto, i to bardzo prosto -...
Wydaje mi się, że masz problem ze sformułowaniem problemu i ułożeniem algorytmu. Może spróbuj zrobić tak: 1. Jako wynik ustaw 0 - zmienna, np. "wynik". A jako ostatnią operację dodawanie (też jakaś zmienna, np. 'operacja'" 2. Pobierz liczbę - znacznikiem końca liczby będzie jakikolwiek znak, który nie jest cyfrą (na razie olejemy liczby zmiennoprzecinkowe,...
Wystarczy mierzyć wewnętrzne zródło BANDGAP o wartości 1.22V a wynik pomiaru podstawić do wzoru. (122*4/x)*256 otrzymujemy wynik V*100 wystarczy wstawic kropkę po pierwszej cyfrze i mam wynik w postaci 3.26 X odczyt z przetwornika w zakresie 0-1023. Skupiliśmy się na mało rzeczowej dyskusji, a nikt nie sprawdził poprawności podanego wzoru. Otóż jest...
Witam, Nie dolewając oliwy do ognia - każdy typ arytmetyki ma swoje miejsce. Gdy maksymalny zakres liczb jest znany, lub obliczenia wymagają wysokiej precyzji, korzysta się z arytmetyki fixed point (albo integer). Floating point jest wygodny, ale ma swoje wady (utrata precyzji przy krańcach zakresu liczb). Polecam lekturę dokumentu [url=http://www.physics.ohio-state.edu/~...
Próbowałeś podkręcić procesor np. do 20MHz? Zanim o tym pomyślę wolałbym raczej przyspieszyć działanie programu. Spróbuję np. pozamieniać niektóre mnożenia na przesunięcia bitowe lub zmniejszyć liczbę operacji na liczbach zmiennoprzecinkowych. Algorytmy rysowania linii i stawiania punktu w buforze chcę oprzeć na asemblerze (zamiast bascomowych komend...
Po pierwsze to ze Ty nie potrafisz napisac tego w C nie oznacza, ,ze to sie nie da zrobic. Problem taki jak operacje na liczbach zmiennoprzecinkowych jest przeciez nagimnnie spotykany To zwykle pomoznenie liczb np: 1.1*1.2. Robilem cos kiedys takiego w asm i to jest wyzwanie. I tu takie male pytanie co wtedy robia asemblerowcy, co robia asemblerowcy...
czesc mam 2 pytania nie macie moze jakichs materialow o asemblerze 8051 moze pdf jakiegos, i symulatora. Protrzebuje tez jakichs linkow o zapisie liczb zmiennoprzecinkowych na procesorach 8051 i rodziny pentium...
ZM to raczej Znak Moduł. Więc te liczby mnożymy/dzielimy tak jak zwykłe liczby 3-bajtowe, jedyna różnica polega na tym, iż najstarsze bity z każdej liczby nie wchodzą do działania a są ze sobą "xorowane". Jeśli chodzi o sformalizowane algorytmy to znjadziesz je np. w "Metody i układy arytmetyki komputerowej" autorstwa Janusza Biernata. A poza tym obadaj...
Może byś napisał jakie pierwiastkowanie, tj. jaki wynik: całkowity, zmiennoprzecinkowy a jeżeli tak to jaki format liczb (ile bajtów w pamięci).
Jeśli kolega twierdzi że w C musi użyć wstawki z asemblera to uważam że jest to najlepszy dowód na to co jest lepsze C czy asembler . Co do praktycznego uzasadnienia pisania całości w asemblerze jest następująca : dzień w dzień widzę pracę zespołową napisaną w C , która ma więcej błędów niż słownik j.polskiego wyrazów nazywa sie WINDOWS ... Dobrze...
Ja niestety nie znam poleceń MMX :( Ale wydawało mi się, że jest to zestaw jednostki zmiennoprzecinkowej :P Ale mogę się mylić i opisany sposób przechowywania liczby de facto w postaci ułamka ma sens... Jednak nic chyba więcej nie pomogę. :(
Widzę żywą reakcję. Cieszy mnie to.Sam jestem automatykiem i widzę że tacy są również w RTV-forum. Co do sterowania fazowego grzałkami 18 KW (pisał o tym POLO2) to niezły byśmy mieli zakłucacz. Oczywiście teoria regulacji w regulatorze PID dotyczy wielkości ciągłych ale implementuje się takie układy w elektronice cyfrowej masowo. W równaniu regulatora...
Takie hobby czy konkretna potrzeba? Tu tylko zabawa, ale chciałem podziałać coś w arytmetyce w ramach wprawek, co się może przydać przy planowanych projektach profi. Dotąd zwykle wystarczał mi stałoprzecinkowy zakres co najwyżej 16 bitów. Wypróbuj long long Działa ładnie, choć to integer. Ale może będzie okazja poznać metody na coś więcej niż tylko...
(at)dondu Ale wiesz, że ta grafika pochodzi z portalu utrzymywanego przez AVT Korporacja? Zapytaj Chińczyków albo Amerykanów co jest dla nich istotne. Odpowiedzi będą zupełnie inne. Nie dlatego, że nie patrzą na ceną czy narzędzia, ale dlatego, że mają zupełnie inne wymagania projektowe. Różnice w koszcie układu, które są liczone centach nie są nic...
No i jak tu sie wzorować na dokumentacji: The sofware calibration can be done using the formula: T = k * Jak najbardziej można się wzorować, tyle że ten wzór operuje zmienną integer (powiedzmy 16-bitową). W takim przypadku bajt ADCH wysunięty o osiem bitów w lewo daje starszy bajt liczby. W asemblerze wystarczy wpisać odczyt starszego bajtu przetwornika...
Język C stworzono z tak aby był niezależny od sprzętu, starając się wszystko co niskopoziomowe przerzucić na system operacyjny lub ukryć w jakikolwiek sposób, zgodnie z tą filozofią są pisane książki o programowaniu w C (na duże komputery), coś w stylu: jeśli potrzebujesz komunikacji poszukaj odpowiedniej funkcji systemu operacyjnego która załatwi to...
Jeżeli chcesz dokładniejszej precyzji dla liczb zmiennoprzecinkowych, to możesz użyć biblioteki Dodano po 4 W takim razie czemu nie mogę dodać tej biblioteki do Arduino IDE? Ta biblioteka (geographiclib) nie została napisana dla środowiska AVR i nie sądzę, aby udało się jej użyć w tym środowisku.
Rozumiem, że korzystasz z jakiegoś AVRka (po rozkazach wnioskuję). Proponowałbym Tobie zapisać liczbę w postaci zmiennoprzecinkowej, czyli bit znaku + mantysa + wykładnik. Wówczas mantysy mnożysz normalnie, a wykładniki dodajesz (zapomniałem dodać, że wykładnik zapisujesz jako liczbę w kodzie U2) :) No a bity znaku zwyczajnie XORujesz ze sobą, aby otrzymać...
Wz = 31,5-((255-n)/2) wystarczy pomnożyć przez 10 10Wz = 315 - ((255-n)*5) Teraz masz już całkowite. Przecinek wstawiasz podczas wyświetlania na LCD. Ustawiasz kursor na pozycji drugiej, wyświetlasz liczbę - w twoim przypadku 10x większą. Teraz dzielisz liczbę przez 10 tak aby wynik zawierał liczbę pełnych dziesiątek (bez części ułamkowej), ustawiasz...
Odwieczny problem Polaków, zamiast wspólnie budować... tylko wzajemnie się niszczą.Wszyscy macie w jakimś stopniu rację. Ale ja chciałbym żebyśmy się wzajemnie szanowali i udzielali sobie wzajemnie pomocy. Popatrzcie na jakim poziomie jest elektronika w naszym kraju...????? Gówno nie poziom, Chiny są 100 lat przed nami. Gdyby nie te ostatnie bastiony...
double func( double A Hmm.. A jak 64-bitowa liczba double została zmieszczona w czterech 8-bitowych rejestrach? Magia się dzieje :) A co do pisania w ASM, moje zdanie jest takie, że dzisiejsze kompilatory są na tyle dobre, że przy włączonej optymalizacji naprawdę trudno jest samemu napisać lepszy kod. Oczywiście, tam gdzie jest potrzebna większa kontrola...
witam wszystkich! mam pewien problem z wyświetlaczem 16*2 sterowany zgodnie z HD44780 pracuję na nim od jakiegoś czasu i wczoraj stała się bardzo dziwna rzecz, otóż przestał reagować na jakiekolwiek polecenie z mikrotkonrolera do tej pory korzystałem z biblioteki rklibavr - użycie jej jest bardzo proste, więc nie sądzę, żebym zrobił jakiś błąd w programie...
shg - po pierwsze nie wymądrzaj się (to odnośnie Twojej propozycji mojego dokształcania); Dobra, przepraszam, troche przesadziłem. :oops: . Nie mam nic na swoją obronę, oprócz tego że byłem niewyspany (jak zwykle) i ciężkiej książki, o której niżej. Ten post nie jest żadną docinką z mojej strony, bronię tylko swoich poglądów i wyjaśniam kilka spraw...
Juz byl taki temat ale został zamknięty. Moj problem polega na tym ze nie moge ruszyc ds1820 w C z wykorzystaniem bliotek rklib do obslugi ds. #include <avr/io.h> #include<avr/interrupt.h> #include<avr/eeprom.h> #include<string.h> #include "lcd.h" #include "ds18x20.h" #include "delay.h" uint8_t gSensorIDs[OW_ROMCODE_SIZE];...
https://obrazki.elektroda.pl/8663544600_... We współpracy z TME testujemy i uruchamiamy nowe Integracja Pico2 z Arduino jest bardzo prosta, otwieramy File > Preferences -> Additional Boards Manager URLs i dodajemy url https://github.com/earlephilhower/arduin... https://obrazki.elektroda.pl/1149548700_...
liczba zmiennoprzecinkowy kodować liczba zmiennoprzecinkowy mnożenie liczba asembler
czujnik misce olejowej makro przycisk access wywołać impuls elektromagnetyczny
mikrokomputer cobra1 deawoo lanos
Jak ominąć płytkę sterującą w żelazku Tefal? Lodówka Siemens nie działa - diagnostyka i naprawa