Jakie Bez tego mechanizmu ciężko ogarnąć takie tematy jak zagnieżdżanie przerwań czy zmiana kontekstu po przerwaniu. Idea jest taka, że w twoim przypadku SysTick musi mieć wysoki priorytet (najwyższy w "systemie", w znaczeniu w RTOSie), tak aby tick był regularny i się nie gubił. Przełączanie kontekstu na najwyższym priorytecie zaś jest średnio zabawne,...
Procesory 8051 nadal jednak nie kosztują dolara. Czy naprawdę warto kupować procesor za kilka dolarów tylko dlatego, że "wystarczy", zamiast kupić procesor za dolara, który jest kilkanaście razy na wyrost? Pamiętam pewną wypowiedź Kolegi michalko12 (nie dosłownie!) gdzieś na DIY, gdzie stwierdził, że jakiśtam prosty projekt może zrobić na CM3, "bo potrafi"....
Nie do końca, np. takie komputery jak MK14, KIM-1, i setki podobnych miały, jeśli w ogóle, tylko klawiaturę numeryczną, najczęściej HEX, oraz prosty monitor(program nie ekran), który pozwalał na bezpośrednie wprowadzenie jedynie kodów numerycznych (najczesciej HEX lub osemkowych)do pamięci. Assembler to już program, który pozwala operować na rozkazach...
Jak dla mnie strasznie jest to skomplikowane. W środowisku którym ja się posługuje jest o wiele prościej. Wystarczy np. AVR studio. Wgrywam bootloadera, albo sam plik hex z programem bez bootloadra. W przypadku wgrania bootloadera program wrzucam poprzez RS232, albo konwerter USB na RS232, bądź RS485 na RS232. (są też inne konwertery, ale nie korzystam)...
dodawanie do ZH:ZL można zrobić w dość prosty sposób: add ZL, r16 adc ZH, jakis_rejestr_o_wartosci_0 Jeśli tablica "cyfry" jest "Dim Cyfry(4) as Byte", to bardziej prawdopodobne jest, że znajduje się w pamięci RAM a nie programu, stąd szacunkowo kod powinien wyglądać jakoś tak (jakoś, ponieważ nie znam bascoma): $asm ' laduje do pary rejestrów Z adres...
Napisz dokładnie jak to ma wyglądać i czy to ma być w trybie tekstowym czy graficznym. Ja osobiście polecam pisanie programów asemblera w notatniku, bo korzystanie z tego co wygeneruje kompilator C mija się z celem. Bo jak już wybieramy asemblera to chcemy napisać program jaknajbardziej optymalny. Najprostszy program w asemblerze typu "Hello World"...
A czytałeś ten link, co Ci podałem? Masz tam: możesz korzystać swobodnie z r0, r18 - r27, r30, r31. Pozostałe musisz przechować (z wyj. r1, który musisz wyzerować). Tak się zastanawiam, czy czasem w tym opisie nie ma błędu, tzn. że argumenty pakowane są aż do r18, a nie do r8. Lepiej to sprawdź, patrząc jak jest kompilowana przykładowa funkcja (i wywołanie)...
Błąd powstaje gdy iloraz przekroczy dopuszczalną ilość bitów. W dzieleniu N-bitowym, iloraz musi się zmieścić w N-bitach (pamiętając, że dzielimy liczbę 2N-bitową przez N-bitową). Przykładowo dzielenie 16-bitowe (dx:ax) [syntax=asm]mov dx,0xFFFF ; dzielimy 0xFFFFFFFF mov ax,dx mov cx,1 ; przez 1 div cx;First chance exception: Address 0x0040190C Integer...
Daj mi kod dla komputera Commodore C64 na cykliczną zmianę koloru ramki obrazu, osobno w języku basic i osobno w assemblerze Oczywiście! Oto prosty kod w języku BASIC i assemblerze dla komputera Commodore C64, który cyklicznie zmienia kolor ramki obrazu. **BASIC:** ``` 10 FOR I = 0 TO 15 20 POKE 53280, I 30 FOR J = 1 TO 1000 : NEXT J 40 NEXT I 50 GOTO...
Czy próbowałeś zbliżyć się do maksymalnej możliwej szybkości komunikacji z wyświetlaczem OLED, czyli 400 kHz? Nie, ponieważ moje procedury działają tylko na 100 kHz. Żeby zmienić ich częstotliwość działania, trzeba by je napisać od nowa z uwzględnieniem krótszych opóźnień. Wtedy na pewno nie zadziałają przy niższych częstotliwościach pracy mikrokontrolera...
Odnosnie wspolpracy z innym programem to tez jestem za. Choc tutaj jest tylko programow na rynku ze trudno bedzie wszystkim dogodzic. Najlepiej by bylo wybrac jakis format ktory jest prosty i najwieksza czesc programow pozwala na import. Nie wiem tez czy nie warto przemyslic opcji wypuszczenia kodu na jakiejs popularnej licencji (umieszczajac kod na...
Ten algorytm przedstawia prosta metode mozenia ktora czesto byla stosowana w procesorach nie posiadajacych instrukcji mnozenia. wykozystuje sie w nich rotacje bitow i dodawanie. Algorytm jest bardzo prosty w realizacji.
, książki , kursy itp ... [url=http://margines.pl/index.php?ukey=p... Definitive Guide to the ARM Cortex-M3 No i podstawa to dokumentacja oraz FAQ ze strony ARM.com
c) chodzi dokładnie o to co napisałeć, plus dodatkowo - skoro napisali w treści, że to call jest pod adresem 0x100 to zapewne autor oczekuje jeszcze, aby napisać jaka wartość znajdzie się na stosie. Tu mały problem w AVR - przestrzeń FLASH adresowana jest w słowach, więc adresy bajtowe trzeba pomnożyć razy 2. c) i d) można się jeszcze zastanowić o ile...
Skoro dopiero się zaczynasz uczyć, to ciężkiego kalibru używasz (mam na myśli assemblera) a ja uważam, że to najlepszy pomysł - zaczynać od poznania asemblera. Pomimo, że początki są trudne to poznanie podstaw przynajmniej asemblera daje już dużą wiedzę co i jak można robić z prockami. A do większych później projektów czy nawet małych można spokojnie...
Może nie najładniej to rozrysowałem - [url=http://forum.dzyszla.aplus.pl/topic... dzielenia liczb wielobajtowych z wykorzystaniem odejmowania
ecx jest rejestrem, nie zmienna lokalna. Jesli wolana funkcja korzysta z tego rejestru (a moge sie zalozyc, ze tak jest), to Twoja petla sie rozsypie.
Mam małe doświadczenie w programowaniu mikrokontrolerów, piszę raczej aplikacje na PC w C++ i w javie. Żyjemy w czasach gdzie do rozwiązania różnych problemów używamy różnych języków. Zrobiłem sobie taki prosty termometr cyfrowy i do jego zaprogramowania wybrałem asm. Wg mnie użycie C++(mojego ulubionego języka) byłoby nieporozumieniem. Może kiedyś...
Jesli chodzi o programowanie z DSM-51 to powinno to byc tak: LJMP START ORG 100H START: LCALL LCD_CLR ;czysci ekran MOV A,#5AH LCALL WRITE_DATA ;wyswietla 'Z' MOV A,#57H LCALL WRITE_DATA ;wyswietla 'W' MOV A,#4FH LCALL WRITE_DATA ;wyswietla 'O' MOV A,#4CH LCALL WRITE_DATA ;wyswietla 'L' MOV A,#4EH LCALL WRITE_DATA ;wyswietla 'N' MOV A,#49H LCALL WRITE_DATA...
sa procki w ktorych assembler jest przyjemniejszy i tez majace calkiem solidna wydajnosci - moze nie koniecznie potrzebny ci jest ARM Cała filozofia mojej pracy tkwi w tym, że muszę to zrobić na procku opartym o rdzeń ARM więc będę to męczył, jak już diodę zapalę to reszta będzie tylko modyfikacjami :) Nie jest zle poradzisz sobie :) nie wiem dlaczego...
Poczytaj, przyda Ci się: http://pl.wikipedia.org/wiki/Tryb_rzeczy...
Bo, moim zdaniem, powinieneś adresować bufor pośrednio. Np. tworzysz sobie bufor od danego adresu. Adres zapisujesz do R0 i potem adresujesz np. mov A,SBUF mov (at)R0,A inc R0 Wówczas R0 jest Twoim wskaźnikiem do danej komórki bufora. Można zdefiniować jeszcze stałe np. BUFFER_START i BUFFER_END, które będą adresami początkowym i końcowym bufora, co...
Taki program mógłby wyglądać tak: Mnożna: rejestr E Mnożnik: rejestr A Wynik: rejestr HL LD HL,0000 ;inicjacja wyniku LD B,08 ;licznik pętli LD D,00 ;zerowanie bardziej znaczącego bajtu DE NXBIT ADD HL,HL ;przesunięcie wyniku w lewo RLA ;sprawdzenie cyfry monożnika JR NC, FIN ;opuszczenie zera ADD HL,DE ;dodanie mnoznej FIN DJNZ NXBIT ;powrót do początku...
A możesz stosować FPU? Jeśli nie to po prostu skompiluj sobie prosty kod w c z dzieleniem, zdeasembluj i będziesz miał gotowe funkcje.
https://obrazki.elektroda.pl/3029878300_... Witajcie moi drodzy Oto trzecia część mojego praktycznego tutoriala dla ośmiobitowego mikrokontrolera PIC18F2550 od Microchipa i programatora SDCC . W tym temacie najpierw krótko omówię różne konfiguracje oscylatora PIC18F2550 - oscylator wewnętrzny (internal oscillator), zewnętrzny (zegarowy...
obstawiam, że to będą piny PC2-5 (domyślnie załączony jtag w fusebitach). Jeśli masz więcej takich problemów, to pisz do mnie na gadu - z miejsca postaram się pomóc... i nie zwalaj odrazu winy na AVR Studio - przy takich prostych rzeczach niema się co wysypać - mi się nigdy nic nie działo.
bez watpienia odpowiedz na to pytanie padla tutaj dokladnie 3 razy, a przedewszystkim znajduje sie ona w datasheecie. 4\/3!!
Jesteś wstanie napisać 100kB dobrze zoptymalizowanego kodu? Obecnie wiele kompilatorów jest naprawdę dobrych, a niektóre potrafią świetnie używać dodatkowych instrukcji takich jak MMX,SSE itd. i tworzyć różne ścieżki kodu w zależności od dostępnych rozszerzeń na procesorze. Ile ścieżek kodu napiszesz w assemblerze? Można to też policzyć w inny sposób....
Migracja 89c2051-->>89s8253 WITAM Prosty program napisany w assembler 51 pod 89c2051 obsluga klawiatury , wyświetlacza 7 seg chciałbym przenieść na 89s8253 czy to możliwe bez zmiany kodu. POZDRAWIAM
89S8253 ma dopuszczalny prąd obciążenia pinu rzędu 10mA i całego portu 15mA - jeśli wysterowujesz przekaźnik bezpośrednio z procka to wcale się nie dziwię, że tak się dzieje. Albo użyj tranzystorów jeśli przekaźników masz ledwie kilka, albo układów typu ULN2xxx (darlington array) jeśli masz ich w okolicach 8. Zatem prosimy o schemat połączeń oraz ten...
Witajcie. Postanowiłem napisać ten temat z jednego powodu: Siedzę już dłuższy czas na próbie programowania w Assemblerze i wciąż nie mogę dojść do tego co mam zamierzone... Chcę zrobić prosty kalkulator do obliczania podstawowych obliczeń (dodawanie, odejmowanie, mnożenie i dzielenie). Do tej pory mam coś takiego jak zamieściłem poniżej. I teraz pytanie...
Ok ,a czy nie da sie odrazu zapisac sprawdzania przycisku pomijajac zaladowanie stanu portu do akumulatora ?? np : sprawdz: // petla sprawdania przyciskow P0-P7 jnb P2.0,wys0 // jesli P2.0 jest 0 skok do wysw0 jnb P2.1,wys1 jnb P2.2,wys2 . . . itd (...) Można sprawdzać stan linii portu 2 w ten sposób, nie trzeba wykorzystywać akumulatora. mov acc,...
[syntax=avrasm] ; PODPROGRAM MNOZENIA LICZB DWUBAJTOWYCH ; PISAL I TESTOWAL: MIROSLAW LACH, AVT ; WEJSCIE: ; R0 - ADRES NAJMLODSZEGO BAJTU MNOZNEJ ; R1 - ADRES NAJMLODSZEGO BAJTU MNOZNIKA ; WYJSCIE: ; ILOCZYN JEST UMIESZCZANY W MIEJSCE CZYNNIKOW ILOCZYNU, GDZIE ; ZLOZENIE BAJTOW (R0-1):(R0):(R1-1):(R1) DAJE WYNIK ; (R0-1) - BAJT NAJSTARSZY, ZAS R0 I...
W PONOŻSZYM PROGRAMIE JEST JAKIŚ BŁĄD, JEST PROSTY PROGRAMIK GENERUJĄCY PRZERWANIE OD T0 I ZMIENIAJĄCY CO 0.5s STAN P1.7 CHOĆ PROSTY TO JEDNAK NIE DZIAŁA. KOMPILOWANY JEST POD KOMPILATOREM FORTECH ASSEMBLER RODZINY PROCESORÓW 8051 NA 2051. NA PORT TEN WŁĄCZYŁEM DIODĘ JEDNAK NIC, TO SAMO ZADANIE POD BASSCOM NIE PISANE W ASSEMBLERZE DZIAŁA WIĘC UKŁAD...
Witam, od niedawna zacząłem interesować się programowaniem uC więc z góry przepraszam za infantylne pytania. Chcę nauczyć się wszystkiego "od podstaw" - mówiąc od podstaw mam na myśli unikanie korzystania (jeżeli to możliwe) z gotowych libów opisanych m.in. w książce K.Paprockiego oraz tworzenie - w ramach potrzeb swoich - w zależności od zapotrzebowania....
Witam, Postaram się opisać mój problem od samego początku, tak więc: Staram się zrobić prosty programik w assemblerze, oczywiście robię wszystko zgodnie z książką (biblia użytkownika) ale niestety natrafiłem na błąd, który w książce nie jest opisany. Wszystko robię w dosboxie - Otwieram dosboxa, robię PATH tam, gdzie mam wszystkie narzędzi oraz programy,...
Witam! Usiłuje zasymulować obsługę magistrali I2C na procku ATmega128 w AVRStudio 4. Prosty kod źródłowy w assemblerze znajduje się w manual'u (str. 212). Problem w tym, że to nie działa. Mam problem z wyzerowaniem bitu TWINT w rejestrze TWCR (zeruje sie go wpisując 1).Poniżej zamieszczam fragment programu - inicjalizacja TWI i wystawienie bitu startu...
Witam!! Najlepiej to wziąść sie za jakiegoś Atmega np. uniwersalnego ATmega 128. Można w fajnej podstawce kupić w firmie www.propox.com za parę złotych. Ale zależy co ma wykonywać projektowany układ. Do prostych gdzie nie wymagane są obliczenia tylko operacje proste na portach to pasuje '51, a jeśli o szybkość obliczeń, moze wyświetlacze graficzne LCD...
Jeśli kod ASCII znaku '0' to 30h, to ile od 30h trzeba odjąć (SUB), żeby dostać 0? A jeśli '1' to 31h, to odejmując tą samą... takie czary :) Przecież masz dokładnie to samo tylko w drugą stronę cyfra -> znak w ety1. Masz tu kilka prostych kodów, w tym także wprowadzanie liczb: https://www.dzyszla.pl/download-34.html
najlepiej jak zaczniesz bawić się programem BASCOM AVR jest to bardzo prosty język programowania
Witam chciałem sprawdzić jak działa uvision2, zapodałem prosty programik testujący port P1. CZAS EQU 8 ;stala czasowa ORG 2000h ;adres startowy programu start: INC P1 MOV R3,#czas ; MOV R2,#0 MOV R1,#0 LOOP: DJNZ R1,LOOP ;petle do wykonywania opoznien DJNZ R2,LOOP DJNZ R3,LOOP SJMP $ ;powrot do poczatku end Gdy go skompiluję start debug session i wybiorę...
Witam. Kilka dni temu zacząłem swoją przygodę z Assemblerem 8086. Zacząłem pisać prosty program w Emu8086 wszystko działa ładnie. Jednak potrzebuje aby kompilował się i działał w MASM. Asembluje się bezbłędnie jednak nie działa tak, jak powinien. Dodam, że odpalam pod WinXp 32bit. Gdyby nie działał w Emu to okej, przejrzałbym rejestry itd i znalazłbym...
Mój nauczyciel od ukladów mikroprocesorowych zadał nam dwa zadania, w których to należy napisać program w assemblerze pod 8051. Oto ich treść: 1. Napisz prosty program sumujący dwie liczby binarne w assemblerze dla 8051. 2. Napisz program przenoszący wartość 10H pomiedzy rejestrem R0 a zewnętrzną pamięcią danych w nieskończonej pętli (assembler dla...
IDE... one :D jeśli chcesz coś przenośnego i nie wymagającego instalacji, to na stronie: https://ideone.com/ można zdalnie pisać i odpalić kod assemblera ;)
1. Jak mogę poznać podstawy assemblera? (Assembler czy asembler?) Ja zaczynałem od PC, dużo programów, przykładów i dokumentacji. Musisz zdobyć nawyki i przyzwyczaić się do projektowania algorytmów na bardzo niskim poziomie. 2. Jaka obecnie dostępna literatura pozwoli mi na opanowanie postaw, wyjaśni mi czym dokładnie są stosy, rejestry i jak na nich...
zumek podał wersję dla 8051. Dla avr należy skorzystać z instrukcji LPM
A co do środowisk to polecam MIDE-51 :) http://www.opcube.com/home.html
Gotowe procedury udostępnia ATMEL na swojej stronie :] http://www.atmel.com/dyn/products/app_no... pod nazwą AVR200...
sbi _SFR_IO_ADDR(TIFR), OCF1A Instrukcji sbi nie można używać w odniesieniu do rejestrów o adresie większym niż 32, zamiast tego należałoby w tym przypadku użyć: push r18 ; opcjonalnie ldi r18, (1<<OCF1A) sts _SFR_MEM_ADDR(TIFR), r18 pop r18 ; opcjonalnie Odkładanie na stos nie powinno być konieczne, gdyż rejestr r18 zgodnie...
1. Piny P1.0 i P1.1 są wejściem komparatora, aby działały jak zwykły pin I/O musisz je podciągnąć do Vcc przez restystor. 2. Piszę z głowy, nie testowałem [syntax=asm] DIODA equ P1.7 org 0h start: cpl DIODA mov R6, #255 opoznienie1: mov R7, #255 opoznienie2: djnz R7, opoznienie2 djnz R6, opoznienie1 sjmp start END [/syntax]
prosty kalkulator assembler assembler darmowy assembler assembler przerwa
gasną światła skoda fabia oznaczenie przepływomierz duval opalia
interfejs diagbox electrolux mruga start
Jak wymienić pokrowiec na wałku prasownicy Predom Błąd "Windows socket error 11001" w WinProLadder przy połączeniu z PLC przez TCP/IP