To podpowiem Ci jeszcze złośniku, że obroty stosuje się na poziomie assemblera tylko dlatego, że niektóre maszyny tylko przez obrót potrafią przesunąć bity do przeniesienia. I jak spojrzysz na całość to nie chodzi o obrót tylko o przeniesienie i o przesunięcie całej, wielobajtowej liczby. I chociaż absolutnie na to nie zasługujesz przy sposobie w jaki...
Ikonę można dodać. w pliku rsrc.rc Ikona ICON "stym.ico" w pliku glownym .data IconName db "Ikona",0 .code ; procedura okna DlgProc proc hWnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM .if uMsg == WM_INITDIALOG ;inicjacja okna invoke LoadIcon, hInstance, ADDR IconName ;ladowanie ikony invoke SendMessage, hWnd, WM_SETICON, ICON_SMALL, eax
Procedura zerowania RAM: [syntax=asm] MOVR0,#8 MOVR1,#247 ZEROWANIE: MOV(at)R0,#0 INCR0 DJNZR1,ZEROWANIE [/syntax] Zmień sobie wartość którą wypełniasz :-) Tylko uwaga na obszary. Zauważ że "oszczędzam" tylko pierwszy bank rejestrów bo tam są umieszczone R0 i R1, które używam do czyszczenia RAM. A instrukcja MOV A,(at)A+DPTR odczytuje do akumulatora...
Załóżmy, że to też błąd przy wklejaniu kodu (inaczej asembler zgłosiłby błąd). Powinno być R21 , a nie R121 . Być może to też błąd przy wklejaniu. Bity WGM12 , CS12 oraz CS10 nie znajdują się w rejestrze TCCR1A tylko w TCCR1B . Istotne jest jednak to, że ustawiając tylko bit WGM12 ustawiasz TIMER1 w tryb 4, czyli tryb CTC, w którym timer liczy od 0...
Witam Procedura gotowa, działa na przerwaniu i wyrabia się w 40 cykli zegara (około), ale nie odkładam rejestrów licznika na stos, jeżeli licznik będzie w SRAM to trzeba dodać zachowanie na stosie rejestrów Y. Na razie popatrz na asembler i napisz co z tego rozumiesz, acha, algorytm jest inny niż twój. INT0INT1: push r16 ;odłożenie rejestrów i SREG...
Z pewnością sposobów jest mnóstwo. Przypomniałem sobie troszkę asembler mcs51. Mam nadzieję, że program w asemblerze wyjaśni wątpliwości (albo pogłębi ;-) ). Skorzystanie z "tabliczki dzielenia" lub "tabliczki mnożenia" na liczbach o podstawie 2^8 przedstawia poniższy program. Tabelę rozbiłem na 3x256 bajtów. Obliczenie realizowane wg zależności x=256*a+b...
Symulator Lasera http://images49.fotosik.pl/261/c05af04e8... Fot.0 Jedno ze zdjęć prototypu symulatora lasera Jest to opis kilku symulatorów zaprojektowanych i działających przeze mnie . Zarówno tych najprostszych opartych na popularnym tajmerze 555 , jak również do konstrukcji profesjonalnych opartych na mikrokontrolerach jednoukładowych...
Konwerter bitmap możesz zastosować np ten :arrow: [url=http://radzio.dxp.pl/asystentlcd/]K... bitmap
Oczywiście nikomu się nie chce przeglądać strony producenta układów. AVR410. http://www.atmel.com/dyn/resources/prod_... Tym bardziej, iż kod jaki generuje BASCOM AVR jest taki sam, bo ta procedura jest wpisana do zasobów kompilatora jako template code .
W procedurach wlasciwie wszystkie 32 rejestry sa uzyte, a nie bardzo wiem gdzie wsadzic dane przed skokiem do procedury i gdzie bedzie wynik po powrocie. AVRgcc interface: All functions use the AVR-gcc function call interface : double func( double A [, double B] ) A := R25:R24:R23:R22 with R25 holding sign and...
Jeżeli chodzi o język programowania, na razie u mnie na tapecie jest asembler i dlatego też o niego pytania. Czy ktoś ma pomysł jak taka procedura mogła by wyglądać już w asemblerze, tak żeby np. ostatnie 4 bity rejestru r16 były PA0, PA1 PA2 i PB3. hmmm dobra, procedurka właśnie wpadła mi do głowy, więc już sobie jakoś poradzę, ale pytanie jest jeszcze...
;* ;***************************************... ;*PROCEDURY OBSŁUGI MAGISTRALI 1-Wire DLA MIKROKONTROLERA AVR ;***************************************... ;* ;*Nazwa pliku :AVR_1Wire.asm ;* ;*Przeznaczenie :dowolny AVR, za wyjątkiem AT90S1200 ;*Kwarc :4MHz ;* ;*******************************OPIS****...
Jesteś wielki, właśnie tego potrzebowałem mov A,R6 ;przeksztalcenie godzin na kod BCD mov B,#10 div A,B orl A,#30h ;konwersja do ASCI orl B,#30h ;xxxxxxxxxxxxxxxxxxx mov SBUF,B ;wyslanie jednosci godzin acall czekaj mov SBUF,A ;wyslanie dziesiatek godzin acall czekaj Twoja procedura bardzo ułatwia mi sprawę. Widać fragment mojego programu, w miejscu...
Pozwolę sobie dołączyć swoją opinię . Bascom nadaje się do zabawy w szkole średniej , jest prosty, szybki i nie wymaga ogromnej wiedzy , ale do poważnych rzeczy i pracy to raczej odpada . Jeśli chcesz mieć coś na przyszłość do pracy to zdecydowana większość używa C bo szybko pisze się kod i jest do niego wiele gotowych bibliotek z obsługą różnych rzeczy...
;* ;***************************************... ;*PROCEDURA WYLICZANIA SUMY KONTROLNEJ Z NUMERU SERYJNEGO UKŁADU 1-Wire ;***************************************... ;* ;* ;*******************************OPIS****... ;*Kolejne bajty numeru seryjnego...
Tak. Opóźnienia są za małe. Procedury opóźniające powinny wyglądać np. tak: wait10us: ; 3 ; Procedura odlicza czas 10us lditime,11 ; 1 wait10us_loop: dectime ; 1 brnewait10us_loop; 2 (1) ret ; 4 ;---------------------------------------... waitms: ; przy wywolaniu procedury zadeklarowac stala TIME_MS ; 3 ; procedura...
Procedury obslugi magistrali I2C w komunikacji mikrokontrolera z pamiecia PCF8582 w asemblerze mcs-51 - tak brzmi tytul Czy ktos moglby sprawdzic mi czy to jest dobrze? jest to sama procedura do odczytu danych z magistrali I2C w komunikacji z owa pamiecia ADDR_DEVICE EQU 30h ADDR_CELL EQU 31h DANE EQU 32h _SDA EQU P1.0 _SDA EQU P1.1 START: SETB_SCL...
Jednak liczylem na lepsza pamiec, rasowy asemblerowiec chyba powienien ja miec.Co do zmiany zdania to napisales, ze nic tu nie napisales o necie. Piszac tu zaponiales chyba co pisales 5 dni wczesniej, ze na necie sa takowe biblioteki. nie napisałem tutaj nic o tym, że coś jest na necie Tutaj, czyli tak jak się patrzysz na monitor i przewijasz ten temat...
Co do pierwszego - skąd symulator ma wiedzieć w jakim stanie jest pin wejściowy? Możesz stworzyć plik symulacji z przebiegami IO i nim nakarmić AVR Studio. Co do drugiego - cyfra to jak rozumiem jakiś symbol rejestru? Jak wygląda procedura obsługi przerwania? Jeśli tak jak pokazałeś to jest totalnie błędna, bo dec zmienia rejestr statusu procesora,...
dzięki za odpowiedzi. procedura INACCRS podprogram oczekuje na 2 znaki ASCII z portu szeregowego a następnie zamienia je na bajt i umieszcza wynik w akumulatorze. Odbierane znaki muszą reprezentować cyfry kodu szesnastkowego czyli wystarczy jak zamiast rr A użyje powiedzmy div AB i do B wpisze 2 wczesniej? troszke dziwne bo samo dzialanie bez pobierania...
Ustaw jak [url=http://palmavr.sourceforge.net/cgi-...
AVR studio (asembler) to nie Bascom... tu nie ma czegoś takiego jak komendy do obsługi sprzętowych liczników, musisz używać rozkazów uP i konfigurować odpowiednie rejestry i przede wszystkim odpowiednio używać przerwań, bo one są chyba najważniejszym elementem, którego używa się przy pracy z licznikami. Musisz wziąć notkę katalogową tego atmelka i przejrzeć,...
Witam wszystkich majsterkowiczów :D Oto mój jeden z pierwszy programów napisanych na ATMEGE 8. Dotychczas programowanie mikrokontrolerów traktowałem jako zabawę, używając do tego BASCOMA i zestawu Treningowego. Obecnie stoję przed zamiarem budowy pewnego urządzenia ale przed rozpoczęciem prac chciałbym mieć pewność że część programowa będzie ok. Sam...
A wysyłasz bit potwierdzenia po wykonaniu procedury I2C_ReadByte? Jakoś nie mogę się tego doszukać .
Sposób który pierwszy narzuca się aby liczbę przedstawić w postaci tekstu to znaleźć ilość jednostek, dziesiątek, setek, tysięcy, itd... w danej liczbie (dzieląc przez 1000,100,10). Następnie te znaki pozostaje już tylko "przesunąć" do znaków ASCII, a wiec dodać 0x30. Dla przykładu mamy liczbę 123, liczba setek: 1, liczba dziesiątek 2, liczba jednostek...
Witam, za zajeciach z techniki mikroprocesorowej przerabialiśmy podstawowe zagadnienia z arytmetyki w programowaniu asemblera 8051.Podany niżej program musze przerobic aby dodawał dwie liczby dwubajtowe.Wiem ze powinnen najpierw dodać młodsze bity z przeniesiem a potem starsze ale za bardzo nie wiem jak to zrobić dalej.Czy ktoś mógłby troche mnie pokierować?...
W sumie to biblioteki można dołączyć na końcu lub umieścić za tablicą "przerwań": CSEG ;segment kodu ORG0 JMPINIT $INCLUDE(procedura.ASM) INIT: ;tu jest główna pętla programu SJMP $ $INCLUDE(procedura2.ASM) Używam prostego, "jednoprzebiegowego" asemblera z funkcją optymalizacji kodu i zawsze to działa. A i zawsze umieszczam wszystkie...
Nie wiem czy dobrze rozumiem ale: Wywołanie call (rcall) odkłada na stosie Program Counter, więc wewnątrz procedury program mógłby go pobrać ze stosu (POP) i wpisać tam coś innego (PUSH) - adres, gdzie ma iść dalej po skończeniu procedury rozkazem RET. Ale to nieeleganckie, niebezpieczne itd... I trzeba sobie przygotować takie "dalsze" kawałki programu...
Ok, zacznij od takich zmian, jakie opisałem. Procedura opóźniająca o n * 0.5 ms, gdzie n jest argumentem, np. przekazywanym w rejestrze A.
Ja znalazłem u Atmela. Nota aplikacyjna AVR410 o ile dobrze pamiętam. Ale nie wiem czy to pójdzie na tiny15. Procedura opiera się na Timerach.
Witam Stosuję obliczenia numeryczne tylko w asemblerze z całkiem dobrymi efektami. Na stronie ATMELA można znaleźć gotowe procedury dzielenia i mnożenia wielokrotnej precyzji, jest pełno stron z przykładami działających procedur. Znalazłem nawet pierwiastkowanie (nie potrafię zrozumieć algorytmu :cry: ). Pisanie programów w asemblerze daje nieograniczone...
Tak jak radził asembler - zrób w pętli głównej procedurę przemiatania tak, aby każdy z segmentów przełączał się co sekundę. Wtedy "na oko" stwierdzisz co jest nie tak.
Witam, piszę programy w asemblerze, mam procedurę napisaną w C. Jak ją wpleść skompilować w .asm. Czy jest możliwość podczepienia jako bin lub jakikolwiek inny plik? Jakie są możliwe rozwiązania? Pozdrawiam, Jarek
Witam. Wydawalo mi sie ze problemow z programowaniem AVR w asemblerze miec nie bede... ;) Niestety - potrzebuje procedury obliczajacej log10 w asemblerze. Przesiedzialem pol nocy w Googlach i stronach o programowaniu i nic. Sa w C, jako biblioteki Bascoma itd... ale w asemblerze nic. BARDZO prosze o pomoc, moze ktos ma? Albo zna adresy gdzie szukac?...
Potrzebuję jakąś przykładową procedurę sterowania LCD na AT89c2051 w asemblerze. Może ktoś podać ową procedurkę. I jak wysłać zawartość dowolnego portu na wyświetlacz?
Bo ten avr nie ma w asemblerze komendy dzielenia. Musisz sobie sam napisać taką procedurę albo poszukać gotowej w necie. Ja kiedyś napisałem taką prostą działającą na zasadzie odejmowania. Wydajne to to nie jest ale nie wiem jak zrobić to lepiej.
Witam ! czy ktos dysponuje procedurami do I2C ( pamieć 16k 24c16 ) w asemblera na 51. Bardzo mi się przyda !! Dzeiki !!!!!!
Tak jak pisze (at)atom1477 pokaż layout płytki, dla kwarcu 16 MHz kondensatory powinny być rzędu 8-12 pF, ale dokładnie możesz je policzyć jeśli poznasz pojemności kwarcu z noty. Jest jeszcze jeden problem - BASCOM. Zobasz na wygenerowany asembler, jak wygląda procedura przełączania zegara. Być może tu jest problem. Próbowałeś odpalić program w debuggerze...
Witam. Dzieki pomocy tutejszego forum, znalazlem biblioteke procedur matematycznych w asemblerze AVR, jednak zupelnie nie potrafie ich uzyc. Po pierwsze nie wiem co to za asembler - AVRStudio nie przyjmuje np. takich polecen jak: public adres: Musialem wszedzie zlikwidowac slowo 'public' zostawiajac tylko - adres: AVR Studio nie przyjmuje polecen 'dc.b'...
. Język BASCOM BASIC oferuje wiele instrukcji obsługujacych wyświetlacz LCD. Aby jednak mieć całkowitą kontrolę nad wyświetlaczem można stosować procedury w języku asembler. Poniżej znajduje się przykład: $asm Ldi _temp1, 5 'załadowanie kodu rozkazu do R24 Rcall _Lcd_control 'prześlemy do LCD jako komendę Ldi _temp1, 65 'załadowanie do R24 kodu znaku...
Czy posiada ktoś gotową procedurę na 89c2051 do obsługi 1 wire? Najlepiej napisaną w asemblerze lub jakiś algorytm, którym mogę się posłużyć do jej napisania.
Napisac procedure transferu szeregowego SPI jednobajtowej danej. W programie wysylana dana jest umieszczona w wewnetrznej pamieci RAM w komorce nr 30H, a odebrana dana nalezy umiescic rowniez w wewnetrznej pamieci RAM w komorce nr 38H. Mam takie zadanie i nie mam zielonego pojęcia co i jak powinienem skonfigurować. Generalnie wiem o chodzi w transmisji...
Witam. Czy ktos wie, jak napisac jakis podprogram czy procedure, ktora bedzie zczytywala klawisze ale w przeciwienstwie do WAIT_KEY bedzie umozliwiala dzialanie programu bez wcisniecia klawisza. Chodzi oczywiscie o ASEMBLERA. Po prostu procedura ta ma czekac w programie glownym na wcisniecie klawisza i wtedy w zaleznosi jakito byl klawisz wykonywac...
Jak już pisać wstawki w ASM, to zamiast używać kodu w stylu (przykład z GCC-AVR Inline Assembler Cookbook): naked ): _SFR_IO_ADDR(SREG) zamiast zwykłego SREG . Można zresztą w ten sposób pisać także funkcje wywoływane później w plikach *.c, jeśli są np. krytyczne czasowo. No chyba, że tego wstawianego kodu będzie naprawdę niewiele :)
dziękuję za radę - reinstalacja bascoma pomogła (najnowsza wersja) - jednak produkt MCS-a nie działa tak idealnie skoro trzeba reinstalować a spod asemblera udało sie układ uruchomić , pracuję nad resztą procedur .. :-) nie jest mi cięko nacisnąć przycisk "pomógł" więc dziękuję koledze :-) temat uważam za zamknięty , w asemblerze procedura obsługi wyświetlacza...
Witam, potrzebuję odpalić zegarek PCF8583 na Atmedze16, niestety tylko w grę wchodzi asembler. Może ma ktoś procedury napisane w asemblerze któe działają?
Witam. Wygląda na to, że Kolega niewłaściwie używa instrukcji skoków, próbując zastosować po nich instrukcję RET. Taka konstrukcja ma zastosowanie przy wywoływaniu podprogramów instrukcjami LCALL lub ACALL. Te dwa rozkazy zapamiętują adres powrotny, umieszczając go na stosie. Natomiast RET odczytuje ten adres i powoduje dalsze wykonywanie programu właśnie...
Dokładnie jak mówisz sprzętowe SPI obsługiwane w przerwaniach. Najszybszą i optymalną procedurę obsługi tego lcd można napisać w asemblerze. Ciekawym rozwiązaniem może być też użycie mikrokontrolera atxmega128A3 i jednego z kanałów DMA ale to już wyższa szkoła...
Procedura obsługi przerwania musi zapamiętać wszystkie rejestry, których używa, a następnie odtworzyć je przed powrotem - to zasada podstawowa. Jeśli całość kodu piszesz w asemblerze, to możesz zostawić parę rejestrów tylko do użytku przerwań, i wtedy nie ma obowiązku ich zapamiętywania w przerwaniach, bo nikt inny ich nie używa. Jeśli "pętla główna"...
AT89C52 to już raczej historia . Tego procesora nie można "skonfigurować" do pracy z I2C . Natomiast można go do pracy z szyną I2C zmusić programowo . Odpuść sobie ten procesor i zerknij na nowsze AVR'y . Taki np. ATmega8 ma wbudowany sprzętowy kontroler magistrali I2C . I tego możesz dosłownie skonfigurować do obsługi I2C przez wpisanie odpowiedniej...
diody asembler dodawanie asembler asembler kwadrat
zielony dioda sharp zaślepka dysku openvpn iptables
rozprowadzenie ciepła suszarka siemens
Oprogramowanie do Philips 48PFS8109/12 - skąd pobrać? Klawisz z dwoma kółeczkami w BMW E39 - funkcja AUC