Zastanów się, jaka wartość ląduje w R1 i dlaczego. Zresztą, chyba wyświetla się na wyświetlaczu?
DPTR jest rejestrem składającym się z dwóch bajtów o oznaczeniu DPL i DPH. A więc ten rozkaz ładuje (umieszcza) tą wartość w rejestrze DPTR.
w notacji motoroli # oznacza wartość bezpośrednią tj np ld A,#$E7 ładuj do A liczbę $E7 , a np ld A,$E7 ładuj do A liczbę z komórki o adresie $E7
jakie odwołanie? do czego? jaśniej! PS. Podawanie tegi typu softu na forum publicznym może się źle skończyć...:D Dodano po 5 zasadniczo masz 3 wyjścia: 1) wymiana proca na większy 2) optymalizacja kodu 3) napisanie wszystkiego po bożemu czyli w asemblerze
To jest prosta pętla wykonuje się tyle razy jaki długi jest rejestr żeby ją przedłużyć można zrobić na dwa sposoby dobudować jeszcze jedną pętlę ,która wykona obecną n razy lub rozszerzyć rejestr do długości 3 bajtów wykonując to samo odejmowanie przeniesienia na tym najwyższym i będzie to samo . Dla bezpieczeństwa między sbi portx i cbi portx warto...
Rozumiem, że przez "obliczyć %" masz na myśli policzenie 100 * x/15360. Żeby było prościej liczysz x/153 - błąd nieduży - przy niskich wartościach niweluje potrzebę korekty zaokrąglania, przy bliskich 100% błąd jest największy i dochodzi do 0.5%. Możesz sobie ręcznie zoptymalizować procedurę dzielenia dla znanego dzielnika - 153 to 0x99 binarnie, a...
push/pop stosuje się, żeby zachować wartość początkową rejestrów, jeśli w innym miejscu programu są wykorzystywane. ldz - nie ma takiego menmonika w asemblerze AVR. Zapewne to jakieś makro. brcc - wykonuje skok jeśli wskaźnik carry (przeniesienia) jest wyzerowany, co ten wskaźnik oznacza to sobie doszukasz. lpm r16, z - ładuje do rejestru r16 wartość...
Programuje się głównie w C. Część kodu, w szczególności związana z przetwarzaniem audio jest napisana w asemblerze, ale przypuszczam że można się obyć bez modyfikowania go w stosunku do SDK. Program ładować można przez bootloader USB - korzystają z niego narzędzia recovery. Narzędzia i SDK (a przynajmniej część) dosyć łatwo znaleźć, ale dopasowanie...
to ma byc projekt zasilajacy silniki o znamionowym 120V.. tym juz sie bawic nie bede, zas potrzebuje to ladowac.. asembler, masz moze jakies przyklady dzialania na triaku? nigdy sie tym jeszcze nie zajmowalem
Poczytaj o licznikach 8051, ładujesz wymierzoną liczbe do licznika, licznik odlicza tyle cykli maszynowych, i po odmierzeniu tej liczby (20ms) zmieniasz w przerwaniu stan portu, i tak w kółko, trzeba znać częstotliwość taktowania. Taki skrót żebyś wiedział czego szukać.
mov dptr,#keyarr do rejestru DPTR (dwa bajty) ładowany jest adres pierwszego bajtu tablicy o nazwie Keyarr movc a,(at)a+dptr do akumulatora ładowana jest wartość spod adresu jaki jest w DPTR+wartość w akumulatorze. Jeśli przed wykonaniem tej instrukcji w akumulatorze bedzie wartośc 4 to po wykonaniu operacji w akumulatorze znajdzie się wartośc 17 (piąty...
Zanim zaczniesz używać asemblera wypadałoby poczytać trochę o tych komendach, co one oznaczają i jak ich używać. Jeżeli używasz assemblera jako wstawki w C, to mnemoniki typu MCUSR nic kompilatorowi nie mówią - musisz używać adresów. Z kolei komenda LDn ma z kilkanaście swoich wersji i powinieneś sprawdzić którą używasz i dlaczego. Jeśli już ładujesz...
Najlepszą metodą znalezienia błędu w przypadku jak nic nie pomaga jest analiza kodu w asemblerze jaki został wygenerowany z twojego programu i porównanie go z działającym programem. Pamiętaj że rdzeń cortex-m0 w przeciwieństwie do cortex-m3 jest znacznie prostszy i analiza asemblera nie jest aż tak skomplikowana oczywiście na początku wyda ci się to...
Tak na oko to zapisane jest to z błędem, chyba, że składnia tego asemblera to dopuszcza. Dla mnie to powinno wyglądać np. tak: MOV A,#10 i odpowiednio drugi rozkaz. Co to robi? - ładuje do rejestru A (chyba akumulator) wartość 10, drugie będzie ładowało do rejestru B. Jaki to procesor i jaki asembler?
fp_flashconst: LPMRdZpp(rB3) LPMRdZpp(rB2) LPMRdZpp(rB1) LPMRdZpp(rB0) RET LPMRdZpp to jest makro zdefiniowane tak: #define LPMRdZpp(Rd) \ LPM \ MOV Rd,R0 \ ADIW ZL,1 czyli linijka LPMRdZpp(rB3) daje kod: LPM MOV rB3,R0 ADIW ZL,1 Takie są moje domysły bo co ten kod ma robić to nie mam pojęcia. Bawiąc sie w detektywa: LPMRdZpp = LPM - load program...
Usuń znaczek hash i nazwę zmiennej umieść w nawiasach klamrowych. Będzie odwołanie do pamięci, a nie ładowanie stałej. Oczywiście pisze o tym w pomocy, ale szukać się koledze nie chce. :bad-words: Można uzyskać dostęp do zmiennej umieszczając jej nazwę w nawiasach klamrowych { }. By mieć dostęp do bajtu MSB zmiennych Integer/Word, należy użyć formy:...
Witam jeżeli chodzi ci o prosty sposób na kod programu obsługujący wyświetlacz, to moja propozycja jest taka: Sciągnij sobie Oshon Pic Simulator [url=http://www.oshonsoft.com/downloads.... Tutaj Tam jest gotowy programik do obsługi LCD, możesz go pozmieniać do własnych potrzeb w Basicu (jest w symulatorze), po skompilowaniu ładujesz program.hex do...
Adruino to fajny framework, wbrew temu co napisano powyżej jest napisany w C++, a nie w C. To dosyć istotna różnica. A że jest to framework to udostępnia gotowe biblioteki. Oczywiście można przyjąć postawę, że to ogłupiające i lepiej pisać samemu. Ale z drugiej strony to zależy co jest celem. Szczególnie początkujący mogą utknąć na takich niskopoziomowych...
Tak, jeśli pisze w asemblerze to wiesz kiedy i jaka zmienna ląduje w takiej pamięci operacyjnej, ale język wyższego poziomu będzie już robił problem. Jednak nadal bardzo nie polecam takiej metody. Więcej z tym będzie problemów niż z bateryjką. Poza tym do SRAMu możesz zamiast bateryjki użyć kondensatora 1F 5,5V który do takich celów nadaje się doskonale.
hmm asemblery to bardzo szeroka gama różnych dziwnych "nakładek" niektóre stoją tak naprawde bardzo wysoko. pamiętacie może asembler z Commodore 64 (8502, 6510, 6502) rożnił sie na moje oko dość bardzo od asemblera powiedzmy do procesorów mcs-51 - nie było w nim czegoś takiego jak nazywanie linii programu wsyzstko trzeba było liczyć - przynajmniej tak...
Czy udało się komu załadować do mikrokontrolera plik CX2AEDW.HEX ? Już myślałem, że programator mi padł (bo się trafiło już tak) ale inne pliki HEX bez problemu ładują się. Jest też wersja ASM, ale nie wiadomo w jakim asemblerze pisana. W moim się nie kompiluje. A może ktoś ma poprawny plik HEX tego miernika. Dostałem płytkę i szkoda nie wykorzystać....
"high" i "low" są informacjami tylko dla kompilatora (w asemblerze nie ma czegoś takiego) i tylko względem stałych. Nie można ładować tam zmiennych. Zresztą nie ma nawet takiej potrzeby. Pokaż swój kod i wyjaśnij na jego przykładzie o co Ci chodzi.
Do mikrokontrolera ładuje się już kod w postaci binarnej otrzymany w wyniku kompilacji kodu źródłowego. Jeżeli układ nie ma aktywnego zabezpieczenia, to idzie odczytać ten kod binarny i przetworzyć co najwyżej do postaci zbliżonej do jezyka asemblera, nie jest to jednak identyczny kod, jaki stworzył programista, z nazwami etykiet, definicji stałych...
Witam Wymysłem mojego promotora jest ten zestaw Labolatoryjny. Sluzy on tylko i wylacznie do tego "zeby byc" Jego zadaniem jest interpretacja kodu w języku asemblera który to otrzymuję po skompilowaniu Mojego kodu w C w programie CodeWarrior for ST7.Ten program kompiluje kod w C na asemblera. Tak skompilowany kod (aseblerowski) ładuję dzieki programowi...
No nie zabardzo mi pomogły te propozycje lista rozkazów to mam z atmela a procki są dobre bo tanie i małe głównie chodzi oprogramatory te równoległe z programami do ładowania w pamięć te do bascoma . muszę się przyznać że z lutownicą to ja jestem na bakier lutuje muj kumpel albo brat asembler jest bo opanowania napisałem kilka programów ( do sterowania...
(at)kamyczek Niestety niewiele osób używa symulatora, bo gdyby używali to nie byłoby wielu pytań na elektrodzie. Ale to nie znaczy, że ciągle należy siedzieć w ciemnogrodzie - w końcu trzeba zrobić krok naprzód i używać narzędzi, które się ma. Co do wstawek - oczywiście, że w asembler można wstawiać wstawki w C. Oba języki można dowolnie przeplatać...
(at)autor: Sugeruję zajrzeć tutaj : http://fisnikhasani.com/building-your-ow... Niestety, bootloader zaprezentowany na podanej stronie nie ładuje jądra systemu i nie ma w sobie kodu obsługi jakiegokolwiek systemu plików.
Dzięki... schemat się przyda ale z kodem to będę musiał sam eksperymentować bo kompletnie nie znam asemblera. Zaczynam powoli rozważać rozwiązanie z diodą zenera - tanie, proste i powinno ładować. Zmusza mnie do tego mała ilość wolnej pamięci no i brak pomocy ze strony osób które miały z tym jakieś doświadczenie.
a) OK -> SFR dokładniej pod adresem E0H (ACC dla 8051) b) NIE -> stała liczba dziesiętna 121 pod adres 00h (czyli do rejestru R0) c) rozumiem, że są tu dwie instrukcje? Pierwsza ładuje liczbę do rejestru a druga zapisuje pod adres wskazywany przez R0 stałą 121. Czyli 121 zapisane pod adresem RAM 0AH (czyli 10 w systemie dziesiętnym) d) to samo co w...
Panowie, spokojnie. To tylko tak wygląda w C, że ładujemy za jednym razem 16 bitów. W rzeczywistości instrukcji jest nieco więcej. Asemblera nie przeskoczy żaden język wysokiego poziomu, bo i tak opiera się on na asemblerze. Jednym rozkazem 16 bitowego timera załadować się nie da i to wie każdy, kto zna architekturę MCS-51 (czyli Atmele). Chyba, że...
Ne no, jestem jak najbardziej za, odpowiadałem tylko tehaceole , chcąc wyjaśnić, jak jego rady mogą wypaść w tym środowisku. Właśnie przed chwilą był temat, jak przejść na CTC w Bascom: http://www.elektroda.pl/rtvforum/topic23... Co do nauki i poznania podstawowego sprzętu, to czasem łatwiej jest zapamiętać listę rozkazów z noty katalogowej i...
Ogółem wygląda na to że metoda którą przedstawiłem w pierwszym poście jest najprostsza w zaimplementowaniu gdyż wymaga jednego pinu na jeden sensor (i bez ADC). Obydwie metody które są w linku nie wymagają użycia ADC. Poza tym są proste. Poza tym metoda QTOCH wymaga n+1 portów na n czujników. Na ten przykład implementaja metody QTOUCH w asm z inicjacją...
Chyba już nikt nie używa asemblera :) Jest to błąd AS i raczej nie ma co liczyć na jego naprawienie, bo nikt nie jest zainteresowany asemblerem (a przynajmniej zainteresowanie jest marginalne). Jest kilka obejść problemu: - przejście na asembler z gcc, który wygeneruje plik elf i AS sobie z tym poradzi i EEPROM będzie widoczny. Dodatkowy zysk jest taki,...
Spróbowałem , z 25us zeszło na 15 , to troche lepiej ale faktycznie spróbuje asemblera , lubie jak się wszystko zgadza , a cykle zegara nie lądują gdzieś w ciemnej piwnicy. Rozumiem więc że zanim program obsłuży przerwanie to zużywa około 200 cykli na przechowanie stosu. Powstaje we mnie wariacka myśl żeby port oco2 podać na int (drutem) i dopiero tym...
KKobi może czas na jakąś książkę? .db to "data byte" Alternatywy np. .dw? Dane do tablicy? Oczywiście mówisz o RAMie, nie o FLASHu... No i oczywiście ładujesz adres do jakiegoś rej. indexowego, a potem używasz odpowiedniego rozkazu;-) np.st / std
Witam, Mam taką tabele: znaki: .db 1 , 3 , 2 , 6 , 4 , 12 , 8 , 9 Jak napisze: ldi ZH, high(znaki << 1) ldi ZL, low(znaki << 1) to ładuje mi od pierwszego znaku, a jak załadować 8 - czyli 9? n01x
Oj, zumek , ale PC nie ma nic wspólnego z rejestrami ZL:ZH + lpm , co udowodniłem powyżej. PC ładuje dane do interpretacji rozkazu asemblera z pamięci programu w postaci słowa 16-bitowego w notacji Intela, a lpm ładuje do rejestru r0 (w nowszych procesorkach również do wybranego rejestru i to również z inkrementacją np. w Atmega8 jest lpm Rd, Z+ ) z...
Kod wygląda poprawnie, tzn na ile się da go zrozumieć ;). A czy na pewno zapisujesz plik przed kompilowaniem, pracujesz w dobrym katalogu, kompilujesz dobry plik, ładujesz do procesora dobrą wersje programu, przeładowujesz plik w programie do programatora po każdej kompilacji?
Jeżeli naprawdę masz tantala 200uF na wyjściu to przy ładowaniu stałym prądem 100mA napięcie osiąga 2.85V po ok. 5.7ms. A taka Atmega32 "wstaje" po 4.1ms- jak ma wstawać szybko. Jak szybko wstaje AT128- sprawdź. dżasiek ma rację- ustaw na wolne wstawanie. asembler ma rację- po co zasilacz dla baterii 3V- a nawet 4.5V- i tak procesor chodzi. To co oszczędzisz...
A patrzyłaś przede wszystkim na ten odczyt i przesunięcie o 1 dla wskaźnika na word (czyli o pół elementu tablicy). Sprawdź też jeszcze, na co DS wskazuje, bo nie jestem pewien, czy jest poprawny. Generalnie, jeśli odwołujesz się do zmiennej bez podawania segmentu, to domyślnie jest to DS:[adres]. Sprawdź w debugerze, gdzie lądują dane i skąd odczyt...
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,...
Disasemblując plik hex nie rozróżnisz danych od rozkazów, co może utrudnić/uniemożliwić ponowną assemblację. Będę szczery - czepiam się :D Pierwsze i najważniejsze - jeżeli zdisasemblowanego programu nie da się spowrotem zasemblować, to znaczy, że w disasembler jest do d... i nie działa tak, jak powinien (ewentualnie nie działa asembler). :D A poza...
Po wysłaniu jednego bajtu (i sprawdzeniu SPIF) trzeba ręcznie wyzerować SPIF przed następną transmisją. Poza tym SS (ten od mikrokontrolera, nie od DAC) powinien być ustawiony jako wyjście przed włączeniem SPI (ustawieniem bitu SPE), bo jak nie to mikrokontroler będzie przechodził w tryb slave. Poza zaznaczonymi fragmentami pozmieniałem trochę rejestry...
Wychodzi na to, że szybciej sie dogaduję z uC, PC niż z ludźmi :D Jest kod w Bascom i działa. Gość pyta jak to zapisać w Asm to dostaje tłumaczenie każdej komendy Bascom do Asm i dalej nie widzi zależności? Może zanim komus pomożemy powinniśmy zapytać czy OT wie ile jest rejestrów albo czy wie co to R23 :D Otóż Bascom jak ma działać na zmiennych to...
Potrzebnne ci będą dwie dyrektywy... Po co :?: Szkoda tylko , że grzesio14 pisząc "Program pobiera ciągle tą samą wartość(FFh). " , nie wspomniał w jakim środowisku ten program pracuje - symulator czy procek.Symulator nie ładuje pliku *.eep wygenerowanego przez kompilator assemblera, a do proca należy załadować go osobno. Piotrek
korbis - wywoływanie poleceń BIOSu odbywa się przy pomocy przerwań programowych (tzw. przerwania BIOS-u). Wywołujanie funkcji biosu polega więc na tym, że do rejestrów ładujesz parametry funkcji, a następnie wywołujesz odpowiednie przerwanie (instrukcja int). Jest tego sporo, więc nie będę tego tutaj opisywał. Nie wiem, czy współcześnie jest to potrzebna...
Magnetofon był w tamtych czas tanią pamięcią i pozwalał na sterowanie programowe prawie jak mikroprocesor. Sam magnetofon niczym nie sterował , był jedynie magnetycznym nośnikiem danych i to wszystko . Systemy posiadały pamięci RAM i Eprom , w Eprom zapisany był monitor systemu ( Bios ) posiadający kilka funkcji miedzy innymi obsługę interfejsu magnetofonu...
Jak chcesz miec porzadek w programie i jesli procesor ma robić tylko tyle ile musi to : po 1. Powinienes zdefiniowac w RAM bufor wartosci MIERZONEJ po 2. j/w dodatkowo bufor wartosci WYSWIETLANEJ (wyswietlacza) po 3. W przerwaniu (timera) powinna znalezc sie JEDYNIE obsluga wyswietlania poszczególnych cyfr (pozycji) z bufora WYSWIETLANIA - dotyczy to...
W sumie najważniejsze to kompatybilność - czy tytułowy C64 ciągle potrafi uruchamiać normalne programy i czy da się je uruchamiać pod wzmiankowanym systemem - wielozadaniowo? Zachowanie pełnej kompatybilności było wręcz koniecznym warunkiem i jest zachowane. Osobiście przez wiele miesięcy użytkowania nie znalazłem żadnego programu, czy gry który odmówiłby...
Witam, ja swoja przygode z mikrokontrolerami zaczunałem właśnie od ATmega8, lecz obudowa TQFP. Chodziło mi o programowanie w asemblerze i dlatego pliki *.hex tworze sobie w AVR Studio a do procka ładuje go PonyProg, według schematu ze strony : http://www.patron.net.pl/AVRintropl.htm Za pomocą PonyProg możesz m. in. zapisać, zczytać, wyczyścić procka...
wałek ładujący obwód ładujący moduł ładujący
zderzak przedni astra movano baterie uszkodzenie zespołu bębna
engine fault peugeot delphi ds150e programy
Kamery do monitoringu zewnętrznego: Reolink, Ubiquiti, Axis, Hanwha – wybór, AI, PoE, NDAA Tranzystor SMD z oznaczeniem A6 - identyfikacja