Witam! Może ktoś przebrnął przez ten problem, a mianowicie chodzi mi o zapisanie w pamięci programu stałych danych, które potem rzucam na LCD. Głównie chodzi tu o komunikaty. Przerzuciłem się ostatnio z ASM na C i teraz mam troszku kłopotów i proszę o pomoc. Nie chodzi mi o procedury lecz o sam zapis w pamięci (przez kompilator) stałych i późniejszy...
Witam! Od kilku dni uczę się asemblera. Chciałem napisać bibliotekę DLL w asemblerze, która zamienia małe literki na duże, w podanym w argumencie łańcuchu(w ramach nauki). Funkcja biblioteczna otrzymuje w argumencie wskaźnik na łańcuch(char *). Odczyt poszczególnych znaków działa, problem występuje natomiast w momencie gdy chcę coś zapisać pod adresem...
Witam, znalazłem kiedyś program napisany w asemblerze do kodowania POCSAGu z portu com komputera. Program działa ok ale gdy podłączę mikrokontroler Atmega8 i wysyłam przez Uart komendy do kodera POCSAG to muszę robić przerwy 12 sekundowe pomiędzy wysyłaniem komend. Nie znam asemblera i mam pytanie co zrobić by nie czekać tych kilkunastu sekund pomiędzy...
co prawda wkleiłem to z własnej procedurki w masm32, ale ten asembler niedaleko pada od C, jeżeli tylko trzymać odpowiednie nazewnictwo... .const ColrEditBg equ 00000000h ; 00BBGGRRh BB - Blue, GG - Green, RR - Red ColrEditBgRo equ 00005000h ColrEditFc equ 0000FF00h . . .code . . . . .elseif uMsg == WM_CTLCOLOREDIT invoke SetTextColor, wParam, ColrEditFc...
Poszukuję funkcję zamieniającą liczbę 32bitową lub większą na string w asemblerze ATMEGI.
Hm też mi się tak wydaje, nie wiem czemu go tam nie ma.. Makefile jest z folderu w którym jest cały projekt tego programu z biblioteki rklibavr. Makefile: # Nazwa pliku z funkcją main() - BEZ ROZSZERZENIA! TARGET = main # typ mikrokontrolera #MCU = at90s2313 #MCU = at90s8515 #MCU = atmega163 MCU = atmega8 #MCU = atmega128 # Katalog z bibliotekami...
Drodzy koledzy wiem jak programować w C i C++ na PC'ty więc takie, rzeczy jak Warning to dla mnie ważna sprawa i zwracam na to uwagę - kompilator nie zgłasza problemu jak się deklaruje tablice o wielkości N dla stringu o długości N ponieważ znak \0 wpisywany jest tuż za tablicą a nie w niej samej. Łatwo to sprawdzić w wyświetlając w pętli kolejne adresy...
W tym przykładzie Zakładam że czytałeś to: Nie łatwo przejść tak z marszu z Basic na LUA, za dużo w LUA znaków przy instrukcjach, których w Basic niema. Łatwiej z C wejść do LUA, bo to prawie C tyle, że wyższego poziomu. Dlatego trzeba uważać na aplikacje gdzie potrzeba dużej wydajności, a LUA nie przewiduje wstawek w asemblerze ;) Na domiar złego LUA...
Na razie do pisania kodu jeszcze nie przeszedłem. Tzn próbowałem zmienić ten z ale nie działa. I ciężko w tym znaleźć błąd. Tam jest pisane dla "2313def.inc" i układu PCF8591(przetwornik AC). Z tego co rozumiem jest tam łatwiej bo wystarczy wysłać: START---i2cwrite(ADRES+R)----i2cread----... i już jest wartość. A w ds1621 trzeba chyba coś ustawić...
Zacznij zatem od porzucenia Bascoma i przesiadki na C, skoro zależy Ci na wydajności. Przy okazji możesz wziąć procesor tańszy od AVR i z 10 razy szybszy, np. jakiegoś Cortexa. Zacznij zatem od sensownego udzielenia odpowiedzi na jego pytanie. Może jeszcze ARM i frytki do tego? Nie wiesz, nie pisz. Dawid88: Zagadnienie bardzo interesujące, bo sam wiem...
Ja mam taki pomysł : title str.asm ;(at)(at)(at)(at)(at)(at)(at)(at)(at)(at... Makro EndProcess MACRO ExitCode mov ah, 4ch mov al, byte ptr ExitCode int 21h ENDM InitRegs MACRO mov ax, dane mov es, ax mov ds, ax mov ax,_stack mov ss, ax ENDM ;(at)(at)(at)(at)(at)(at)(at)(at)(at)(at...
Dokładnie ale można to zautomatyzować, poprawiając funkcje wpisującą stringa na wyświetlacz.
Witam moich kolegów programistów, Mam do napisania program z asemblera. Kompilacja Fasm32. Program ma zapisywać dwie liczby do pliku (z klawiatury)test.txt. Kompilacja programu przebiega prawidłowo jednak to wpisaniu dwóch liczb nie zapisują się one do pliku. Prośba o wskazanie błędu. Dziękuje z góry wszystkim pomocnym. Trzymajcie się ciepło ;Aplikacja...
Witam. Niedawno zacząłem swoją przygodę z asemblerem i po przebrnięciu przez podstawy postanowiłem się zabrać za nieco ambitniejsze rzeczy. Starałem się napisać program realizujący test Millera Rabina, ale utknąłem i za cholerę nie wiem co mi w nim nie działa, próbowałem szukać błędu przez dobrych kilka godzin, ale niestety nie podołałem i postanowiłem...
1. Gdzie w apostrofach jest 0? 2. Myślę, że jakbyś wiedział, do czego służy rejestr (E)SI, to by nie było pytania. Ponadto przecież w następnej linijce go wykorzystujesz. 3. mov byte ptr min, al - przeniesienie bajtu danych do zmiennej min z rejestru AL. Moim zdaniem zupełnie niepotrzebne w tym miejscu stosowanie wskazania rozmiaru danych. Tego typu...
Jeśli chodzi o kodu wynikowy , to jego "objętość" , ma zdecydowanie niższy priorytet niż jego niezawodność ;) Piotrek tak tak, tylko, że ostatnio jak biorę się za coś nowego i np postanawiam sobie dać tym razem większy procek (tzn z większą pamięcią programu na zapas) to na końcu okazuje się też często, że jednak wypełniam ją po brzegi i potem najwięcej...
Witam. Mam program napisany w Aseblerze dla atmega8 do generowania i wyświetlania OSD na TV z możliwością odbioru danych/ tekstu za pomocą UART'a. Asemblera kompletnie nie znam, za to trochę znam Bascom (uczę się go) i dlatego właśnie w nim za pomocą drugiej atmegi chciałbym wysłać kilka zmiennych+tekst opisowy na ekran TV. Problem w tym, że za bardzo...
Niesamowite! Wchodzi. Czyli jak próbuję zrozumieć nalezy ikonkę ładować przez nazwę, a nie przez identyfikator. Robiłem tak: 100 ICON "D.ico" Reszta w procedurze okna tak samo. Bezskuteczne. Natomiast tak jak napisałeś: Ikona ICON "D.ico" Ikonka się ładuje. "Ikona" nie jest słowem kluczowym, więc czym dla komputera różni się string "100" od "Ikona"?...
Co do linii opóźniającej to polecam zaopatrzenie się w 3, zrobienie układu do przesuwania fazy o 0,120 i 240st i taktowanie układów sprzężoną wolną i szybką częstotliwością. Powstanie wtedy efekt typu "ensemble" stosowany w wintydżowym instrumencie Solina String Ensemble. Brzmienie jest wtedy kapitalne. No, 8580 są znacznie cichsze niż 6582 i nie mają...
1. Dlaczego C++ to sporo problemów? Choćby dlatego, że użycie większości fajnych "ficzerów" C++ (choćby głupiego "new" w normalnej wersji, nie mówiąc o stringach czy STLu) powoduje zlinkowanie obsługi wyjątków, co zajmuje spokojnie jakieś 60kB kodu. Dodatkowo w C++ pojawiają się fajne zabawy z constami, które np nie lądują wcale we flashu itd. Generalnie...
Witam wszystkich Problem, który przedstawiłem dalej występuje, choć opis w proponowanym linku jest dokładnie tym co próbowałem zrobić. Może ktoś mógłby (krok po kroku) wytłumaczyć mi co robi oraz jak wygląda dokładnie plik '.S' oraz (przede wszystkim) makefile. Myślę, że problem tkwi właśnie w pliku makefile (nie znam wszystkich opcji). Mam tylko jeden...
Witam Bardzo proszę o pomoc w stworzeniu programu będącego prostym zegarem w 8051. Program mam wykonać wykorzystując wewnętrzny timer tick, który zlicza mi sekundy, minuty, godziny (0-23). Prosze o pomoc. Nie wiem co i jak w związku z zaprogramowaniem tego timer'a. Chcialbym aby na przerwanie wywolane przez ten timer był wysyłany winik do wyswietlacza....
program w ibasic professional instr(x, y) szuka stringu Y w stringu X i zwraca jego index lub zero chr$(x) zmienia liczbę X na znak ascii (string) liczba: string z liczbą do konwersji; tylko cyfry i wielkie litery podstawa: 1-36 print ToDec("157", 8) print ToDec("FFFF", 16) getch() sub ToDec(liczba:STRING,...
Zrodlo programu zamiescilem ponizej. Z tym nachodzeniem to mozliwe, ale ja na razie nie wiem gdzie. Procedury obslugi wyswietlacza zapozyczylem z ksiazki "8051 w praktyce": Aha tutaj sprawdzam, czy kolejne kroki programu sie wykonuja, za pomoca wysylania na port szeregowy kolejnych liczb (1,2,3) po kazdym kroku i odbieram je w terminalu. NAME LCD ORG...
aby zdefiniować w assemblerze IAR ciąg znaków: ORG 0x.... //miejsce w pamięci tekst: DB 'jakis tekst',0 teraz odwołujesz się do tego tak mov #tekst,R14 petla1: mov.b (at)R14+,R15 jnz petla1 do R15 będą wprowadzane kolejne kody ascii znaków w stringu
Gdyby ktos mogl pomoc mi w odpowiedzi na nastepujace pytania bylbym wdzieczny: 1. Opisz proces i wymagania dotyczace twoirzenia kodu wynikowego dla projektów złozonych z wielu plików w asemblerze asemblerze jeżyku C 2. wymien i scharakteryzuj stosowane w swojej pracy funkcje biblioteki standardowej STADO, służące do wysyłania znaku i stringu scharakteryzuj...
Gdyby ktos mogl pomoc mi w odpowiedzi na nastepujace pytania bylbym wdzieczny: 1. Opisz proces i wymagania dotyczace twoirzenia kodu wynikowego dla projektów złozonych z wielu plików w asemblerze asemblerze jeżyku C 2. wymien i scharakteryzuj stosowane w swojej pracy funkcje biblioteki standardowej STADO, służące do wysyłania znaku i stringu scharakteryzuj...
ebx, esi i edi są rejestrami które musisz zachować w niezmienionej wersji wracając z funkcji. ebx z niczym extra mi się nie kojaży, ecx działa jako licznik w krótkich rozkazach typu "lawinowego": mov eax,0 ; szukamy zera czyli konca stringu (mov al,0 wystarczy, ale kto tak pisze) mov ecx,-1; max 0xFFFFFFFF znaków do przeszukania mov edi,lpString...
No dobra, udalo ci sie polechtac moja proznosc wiec moze zrobimy tak. Opisze tutaj przykladowego mekafile-a z nastawieniem na WinAVR, Atmega8 i STK200 tak aby inni tez cos z tego mieli. W zasadzie wszystko jest opisane w angielszczyznie no ale jakby kto nie umial to daje po polsku. # Hey Emacs, this is a -*- makefile -*- #---------------------------------------...
Cześć, pisze właśnie funkcje konwertującą flota to stringa. Napotałem na pewnien problem. stworzyłem funkcje konwertującą: void floatToString(uint8_t *stringTab, float32_t data) Gdy ją wywołuje i wchodzę od funkcja przekazywana wartość flt jest zupełnie inna niż zadałam. float32_t flt = 2.4567; floatToString(str, flt); wartość przekazana...
W Podatność na wstrzykiwanie komend Jedną z częstszych i łatwych do odnalezienia dziur jest podatność na wstrzykiwanie komend poprzez np. interfejs użytkownika. Sama idea tego ataku jest prosta – załóżmy, że podajemy gdzieś tekst, który następnie wykorzystywany jest do skonstruowania komeny dla powłoki systemu. Jeśli teraz podamy jako ten tekst...
To powiedz jaka ta jedna deklaracja i jedno przypisanie "ratuje" wszystko, a ja Ci powiem jak w Arduino napisać wstawkę w C. A bardzo proszę jak wiesz, int tabelka ; // akurat mam 3 zmieniane linie n=succ tabelka druga wersja wstawka assemblera, RCR B,1 // rotacja w prawo ( lub w lewo ) z przeniesieniem W moim starym C ( Keil ) na procesory 8051 succ...
Tak swoją drogą przyglądam się teraz kompilatorowi cc65 (). Mam jedno pytanie. Jak działa dołączanie bibliotek standardowych języka C do projektu? Bo z tego co widzę, kod źródłowy z dołączonym plikiem (w moim przypadku "string.h") kompiluje się do formy asemblerowej. Kod źródłowy używanych funkcji bibliotecznych nie jest jednak umieszczany w pliku wynikowym,...
Żadnych floatów, same operacje na typach uint8_t oraz C-stringach. Dużo danych w pamięci programu...r Wystarczą operacje na wskaźnikach a już okazuje się, że w asemblerze jest mnożenie. Jak już wspomniał (at)trol.six trzeba porównać listingi asemblerowe.
Kolega z Łodzi to coś słyszał ale nie do końca pamięta. Nie zaśmiecam sobie pamięci tego typu szrotem. Algorytm na poczekaniu wyczytałem z sufitu. Ponieważ jest "bardzo szybki" może być użyteczny przy wszelkiego rodzaju konwersjach liczba/łańcuch zwłaszcza w układach wyświetlania wielkości fizycznych, gdzie w procesie kalibracji możemy wyliczyć i wpisać...
Witam ! Proszę o pomoc w wykonaniu programu w Delphi. Do tej pory zajmowałem się głównie programowaniem mikrokontrolerów w asemblerze. Projekt który obecnie wykonuję wymaga jednak aplikacji PC wyświetlającej wynik wysłany z mikrokontrolera przez RS. Calość wygląda mniej więcej tak: 1. Mikronotroler zlicza impulsy z enkodera 2. Po stosownych obliczeniach...
Programując w asemblerze problemem nie jest liczba instrukcji, jaka by nie była to sprowadza się do kilku podstawowych, które nawet małpa opanuje jak piszesz. Problem w tym, że program składa się z tysięcy takich cegiełek, z których każda nic nie znaczy. I tak np. jak masz operację dodawania dwóch floatów to w C piszesz y=x+z i problem z głowy, w dodatku...
Witam! Przygotowując się do wrześniowej poprawki architektury komputerów natknąłem się na następujące zadanie: Funkcja biblioteczna języka C o podanym prototypie char *strstr( const char *string, const char *strCharSet ); zwraca wskaźnik określajacy miejsce pierwszego wystąpienia ciągu znaków strCharSet w łańcuchu znaków string. Napisać podprogram w...
o i właśnie wygląda to jak łączenie stringów w jeden duży. A co ze stringami powstałymi z konwersji utoa/itoa itp? Jeśłi używasz dużo różnych konwersji to może okazać się, że wbrew pozorom optymalne będzie zastosowanie np. funkcji sprintf - jest bardzo uniwersalna i umożliwia wszelakie konwersje, w AVRlibc możesz zlinkować jedną z okrojonych wersji...
oczywiście, że można to rozpatrywać jeszcze na miliony sposobów. Ja w swoim teście nadaję te ramki co ok 50ms. Jeśli ustawię ich wysyłanie np co 10ms to tych błędów nawet bez zasobochłonnych procesów pojawia się nieco więcej. Jeśli ustawię interwał czasowy na 100ms to błędne ramki nie pojawiają się nawet przy obciążaniu windy innymi procesami. Te błędy...
Brrr, Basic. ;) Przerzuć się na C lub asemblera. Nowe AVRStudio można zintegrować z WinGCC i działa to bez zarzutów. A w C deklarujesz sobie od razu, czy masz zmienną całkowitą (char, int), czy zmiennoprzecinkową (float) i o dziwo artytmetyka zmiennoprzecinkowa nie zajmuje ogromnych ilości flasha. :) Ciekawie prawisz , tylko wytłumacz mi dlaczego ten...
Najłatwiej będzie chyba znaleźć przykłady kompresji/dekompresji oparte o algorytm formatu zip... nawet je gdzies miałem, ale przeszukanie dysku zajmie mi trochę czasu więc może szybciej bedzie w google... jest API do programu 7Zip, jest bez ograniczen licencyjnych i mocnie zagęszcza. Algoryt ZIP jest patentowany, chyba tylko unzipy są dostepne. jest...
Post Konwersja liczb większych niż dword porusza ten sam temat. Napisałem tam konwerter string -> BCD -> Hex dla liczb całkowitych 64 bitowych w asemblerze. Może będzie pomocny, wprawdzie procedury wykonują operację na rejestrach ale jest to przykład książkowy. Pozdrawiam.
Jeśli chodzi o ustawienie prędkości transmisji to polecam zajrzeć do noty katalogowej układu. (Jest na stronie producenta "Atmel"). Tam masz wszystko napisane czarno na białym. Jeżeli masz zamiar programować mikrokontrolery to koniecznie musisz odświeżyć znajomość "C" (chyba że wolisz asemblera lub bascoma). Jeśli używasz "WinAvr" to w tym pakiecie...
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];...
W paczce z przykładami na stronie TI są: msp430x22x4_uscia0_uart_01_115k.c USCI_A0, 115200 UART Echo ISR, DCO SMCLK msp430x22x4_uscia0_uart_01_115k_lpm.c USCI_A0, 115200 UART Echo ISR, DCO SMCLK, LPM4 msp430x22x4_uscia0_uart_01_19200.c USCI_A0, 19200 UART Echo ISR, DCO SMCLK msp430x22x4_uscia0_uart_01_19200_2.c USCI_A0, UART 19200 Echo ISR, HF XTAL...
Witam Jako że niestety spaliła mi się karta teleVGA postanowiłem wy myśleć inne rozwiązanie na obsługę TV lub monitora. Na elektrodzie było sporo tematów jak podłączyć telewizor bądź monitor pod mikroprocesor. Jedne z wykorzystaniem karty graficznej od PC ale niestety nikomu się chyba nie udało Ja znalazłem taki właśnie projekt na atmega 168 niestety...
pewnie da sie to zrobic wstawka asemblerowa, ale ja bym to zrobil tak: dim a as single dim x as byte a=12.132 dim tekst as string *10 Tekst = Fusing(a , #) x = Val(tekst) a=a-x a=a*100 tekst=fusing(a,#) x=val(tekst) 'i masz po przecinku Jesli cos nie pokrecilem to tak (niesprawdzalem tego), IDEA jest taka: zamieniasz liczbe single na byte od single...
Kolego, nie pisz, ze system edukacji jest zly. Nie jestes uczniem podstawowki tylko studentem a studiowanie to nie nauka tablczki mnozenia tylko nauka myslenia i umiejetnosc szukania... Na dobry poczatek (wszystko do znalezienia na elektrodzie): 1. Kawalek kodu obslugujacego wyswietlacz LCD (standardu HD44780), tryb 4-bitowy, napisany w C. Zeby go uzyc...
Układu SID (6581 stary i 8580 nowy), będącym muzyczną orkiestrą komputera Commodore 64 nie trzeba nikomu przedstawiać – między innymi dzięki jego brzmieniu owa maszyna osiągnęła tak dużą popularność. Warto tylko przypomnieć, że SID ma jedynie trzy kanały, ale umiejętności programistów potrafiły z niego wycisnąć dźwiękowe cuda. Na dzień dzisiejszy...
Spróbowałem coś takiego zrobić ale niestety nie działało. Nie każda linijka kończyła się znakiem <CR> i wtedy program się zawieszał. Znalazłem rozwiązania kolegi "zumek" Config Serialin = Buffered , Size = 80 , Bytematch = 13 ... Serial0charmatch: 'po odebraniu znaku Chr(13) zwiększenie licznika lini(zdarzeń) lds r24,{event}...
temp powinno być volatile. Inaczej się optymalizuje w pętli głównej, spójrz na wygenerowany kod asemblerowy. Dodano po 1 Zarówno "temp" jak i "i" powinny być volatile. i nie musi. Jest wykorzystywane tylko w przerwaniu. Za to powinno być zadeklarowane jako static w funkcji obsługi przerwania. Dzięki za szybką odpowiedź, ale to chyba nie jest problemem......
Proszę bardzo mój kod do 2 różnych pilotów z marketu, Twój to chyba Elro dlatego dołączyłem tez kody dla Elro, choć chyba są zmienne na suwakach w pilocie i odbiornikach. Dodano po 22 No to może być ciężko z odbiorem. Nie widać tam żadnego ciągu synchronizującego ani też żadnego CRC. Synchro jest na końcu każdego słowa, Nadawanie odbywa się przez 3...
no tak zle napisalem.....20 bytes to jeden pomiar, ale w ciagu miesiaca wykonam ich kolo 50-200.(zalezy od ustawien uzytkownika) Stad pamiec 16 KB. Dlatego tez chce uzyc zewnetrzenej pamieci, bo w wewnetrznej nie pomieszcze tych danych. Wewnetrznej beda zawarte jedynie stringi ktore bedzie wyswietlal LCD i ustawienia programowe. Pamięć AT24C16 to jest...
Może macie jeszcze jakieś sugestie odnośnie dynamicznego wykrywania elementów i nie gubienia ich przy czasowym odłączeniu? 1. Centrala wydaje komendę "przedstawiamy się". 2. Reszta przygotowuje swoje adresy. 3. Centrala pyta "Kto pierwszy ?" 4. Każdy pozostały sprawdza, czy linia ma stan niski, jak nie to ustawia stan niski, w pozostałym wypadku czeka...
Witam, wklejam kod w asemblerze ktory wykorzystuje ADC w mikrokontrolerze PSoC firmy Cypress. Na wyswietlacz wywala mi wynik w systemie 16 (hex), czy moglby ktos dopomóc i napisać jak skonwertowac ten wynik na dziesietny (dec)?? Jesli ktos pomoze odwdziecze sie paroma punktami:) include "m8c.inc" // include m8c specific declarations include...
Witam Napisałem program w asemblerze po czym mój kolega przekonwertował to na C++ z tym ze nie rozumiem o co chodzi... jezeli ktos mógłby mi napisać krok po kroku co się w nim dzieje... #include <iostream> #include <string> using namespace std; int main() { string s; cout << "Gray na Bin\n" "Gray = ";...
albertb --> nikt nie pojeździł a przynajmniej ja nie miałem takiego zamiaru, tylko chciałem zwrócić uwagę na oczywiste różnice. Podyskutować chyba zawsze można? A ten przykład , który kolega podał jest bardzo nieszczęśliwy i wręcz wg mnie kolega sam przeczy sobie i strzelił trochę jak kulą w płot niestety. Nie chodzi przecież o jakieś czasem nawet specyficzne...
no właśnie, -O1 ma wg mnie sens, jeśli chcesz sobie ładnie móc debuggować a nie chcesz potem pod koniec musieć pamiętać o tym, żeby zmieniać na -03. Jeśli twój uC się ze wszystkim czasowo wyrabia dla -O1, a nie musisz np. minimalizowac poboru energii (bo wtedy oczywiście zależy ci na tym, żeby wszystko co trzeba wykonać jak najszybciej i pójść spać),...
Temat inżynierii wstecznej firmware jest dość obszerny i wymaga wiedzy z ogólnego tematu inżynierii wstecznej. Głównie chodzi o posiadanie intuicji w celu znajdowania informacji, rozglądania się po pliku, identyfikowania różnych formatów, interpretowania znaczenia offsetów w których znajdują się porcje danych i umiejętności zlepiania tych informacji...
Chociaż na zdjęciu widać mini płytkę z PIC18F1220, to posłuży ona jedynie do praktycznego zaprezentowania obsługi wątków które zaimplementowałem. Obecne możliwości kodu który chce zaprezentować, to działanie równoległe 2 lub trzech wątków, w tym głównej funkcji main która jest pierwszym wątkiem. Całość wymaga kompilatora sdcc (3.6.0) oraz pakietu gputils....
Jako początkujący miałem problem, aby poprawnie ustawić np. 5 środkowych bitów w rejestrze. Wrzucam trywialne macra - może komuś się przydadzą: [syntax=c] #define u32 unsigned #ifdef __GNUC__ #defineasm__asm__ #else #defineasmasm #endif [/syntax] podstawowe operacje: [syntax=c] #defineread32( addr ) *( ( u32* )( addr ) ) #definewrite32( addr, val )...
Opcja -S, o której pisałem to opcja kompilatora, do użycia w komendzie ...-gcc ..., Z tym, że tak wprost się tego raczej nie da dodać. Niestety, CubeIDE nie znam, więc od ręki nie odpowiem, jak tej opcji użyć. Dobra to po kolei :) To już znam odpowiedz na to co mnie interesowało( czyli że to jest po prostu jakiś śmieciowy rozkaz, którego procek nie...
Stworzylem zmienna M1 typu string i zapisalem do niej 1 znak i wyswietlilem na lcd w dalszej czesci programu trzeba wyczyscic ten znak i wyswietlic puste pole,probowalem zdefiniowac za pomoca chr puste pole,probowalem czegos takiego : M1=" " tez nic,w asemblerze nie bylo by problemu, a tu??? Jak to zrobic??? Nawet jak chce zmienic znak w zmiennej zeby...
Wiesz co Ci powiem? Ostatnio wpadło mi zadanie napisania dwóch ciekawych programików. Jeden za zadanie miał odczytywać dane z wyświetlacza lcd( takie szkiełko bez elektroniki które ma 22 wyprowadzenia i 67 elmentów ( cyfry i symbole ) całość sterowana poprzez zmiany napięcia na wszystkich końcówkach jednocześnie. 0V,1V,2V,3V.). Trzeba było 3 dni pisania...
Problem polega na tym, że dopiero co zacząłem zabawę z bascomem a wcześniej programowałem w zwykłym asemblerze i na inną 51. Teraz chcę napisać program do komunikacji między urządzeniem zbudowanym na 89c2051 a sterownikiem. Komunikacja po rsie 232. Siedzę i męcze się z początkiem programu i jakoś mi nie idzie :( Na początek chciałbym napisać aplikację...
hmm ja w bascomie akurat nie programuję, ale tu występuje takie zjawisko bo dane które wysyłasz są buforowane i "wylatują" z PCta praktycznie jedna po drugiej tzn każda w oddzielnej ramce. Twój procek to odbiera też oczywiście po kolei bo inaczej być nie może. A to, że ty w bascomie widzisz je razem to może być spowodowane, że być może masz zdeklarowaną...
oczywiście, że wystarczy $asm ... kod twojej wstawki $end asm ale oczywiście przydałoby się jeszcze wiedzieć jak można uzyskiwać w asemblerze dostęp do zmiennych itp, otóż: Dim Zmienna1 as Byte $asm lds R16, {Zmienna1} ... coś tam robimy sobie w asm ze zmienną i chcemy ją uaktualnić, więc: sts {Zmienna1}, R16 $end asm powyżej...
emarcus dzięki teraz już gra. Mam jeszcze takie pytanie bo tak jak wcześniej pisałem docelowo chcę zrobić miernik indukcyjności. Przejrzałem projekty mierników w necie i na elektrodzie i są oki tylko większość z nich opiera się na mikrokontrolerze PIC 16F84A. W sumie mam wsad do procka w asm ale kiepsko znam asemblera wiec postanowiłem napisać własny...
Do moderatora: Link do dodawania obrazkow nie dziala. Gdyby hotlink nie dzialal: [url=]Link Mam 3 labela w sumie: numer, tresc, punktacja. Problem jest taki, ze w "tresci programu" napisy na guzikach sa zdefiniowane jako czarne a wyswietlaja sie jako zolte, czy mozna cos z tym zrobic? Update: [code] Public Class Form1 'Deklaracje Dim nr_pytania As Integer...
Program do kompilacji pod Free Pascala pod DOSa. Założenie jest takie : program ma zmieniać godzinę w czasie systemowym o +1 po naciśnięciu strzałki do góry i odpowiednio o -1 po naciśnięciu strzałki w dół na klawiaturze. Wymyśliłem sobie to tak: 1. odczytam aktualną godzinę ( przerwanie 21h funkcja 2Ch) 2. dodam lub odejmę 1 3. zapiszę poprawionę godzinę...
Witam. Moze ktoś wyjaśni mi co w tym chodzi. Chciałem zmodyfikować bios dodając obsługę dodatkowej karty PCI. Żeby zminimalizować starty testowałem to na starej płycie, z pełnym sukcesem. Teraz chciałem powtórzyć operacje na docelowej płycie i okazuje ze w jej przypadku nie będzie to takie proste. Zawartość bios-u zmieniam przy użyciu cbrom-a (bios...
arnoldziq. Dostałeś pomógł, bo na prawdę mi pomogłeś. Chodzi o funkcję ReadKey oraz KeyPressed. To eliminuje użycie asemblera do odczytu znaków z klawiatury. Reszcie dziękuję za spopularyzowanie tego tematu. Ogólnie to program chodzi paskudnie. Działa bardzo powoli. Spodziewałem się tego. Ale na początek nauki programowania wystarczy. Na razie nie chcę...
Praktycznie kazdy program który znajduje używa biblioteki ice.lib mimo, ze nie znam bascoma to widze, ze jest deklarowana zmienna np. "tekst", a później uzywana funkcja z tej biblioteki pisz_tid {tekst} więc poniżej wstawiam to co jest w bibliotece. Hmm jak tak teraz patrze to widze, ze tu praktycznie assembler jest i nasuwa mi się pytanie, czy w winavr...
Nie obraź się ale myślę że najpierw powinieneś powalczyć z migającą diodą. :) Przerabiałem to 2 lata temu w asemblerze od pół roku walczę z C# jednak migającą diodę udało mi się uzyskać poprzez przerwania w C#. Jednak na początku tematu napisałem że pierwszy raz programuję LCD. Zasadniczo przed rozpoczęciem następnej funkcji powinieneś zakończyć poprzednią....
Niestety okazało się iż nie mam jak sprawdzić tych opcji na GeForce2 MX400 ponieważ obie moje karty mają nietypowe chipy firmware - jeden to OTP AT27C512R a drugi SST 27SF010 wymaga chyba 12V do programowania. W każdym bądź razie program nvflash nie rozpoznaje obu chipów. Próbowałem kilku wersji 4.28, 4.41 i 4.46 - tak że z tymi kartami nic się nie...
Witam przeczytałem twoje posty do których umieściłeś linki. Jedno co wiem po tej lekturze to to, że w każdym piszesz niby o tym samym ale podajesz inne przykłady i chyba w każdym robisz błędy, na które zwracają ci uwagę forumowicze a ty nadal twierdzisz, że nie robisz babola. Ja w takich przypadkach nigdy nie twierdzę, że nie robię babola a gdy mi coś...
Witam. Chciałem przedstawić mój nowy projekt tym razem sterownik oświetlenia choinkowego. Wykonany został przy współpracy z dwoma kolegami jednym z uczelni (notabene chemicznej ;-) ) i drugim z sąsiedztwa. Powstał więc system zunifikowany o dowolnej ilości kanałów. Opis: Całość bazuje na 2 podstawowych elementach. Pierwszym z nich jest komputer PC...
No i odrazu są jakieś konkrety i twoje szanse wzrosły ;) Skoro linux to pewnie na arm'ie, plik jest zwykłym elfem (z którymi ida radzi sobie świetnie). Jeżeli masz livecd/zainstalowanego linuksa możesz na szybko zdisassemblować ten plik poleceniem "objdump -d nazwa_pliku" (ale to będzie tylko czysty listing asemblera). Teraz musisz wiedzieć czego szukasz,...
Ogólnie pomysł z odczytywaniem flasha procka i sprawdzaniem jaka ma wersje poprzez zaglądanie do pliku binarnego to jakiś dziwny pomysł. Idealny przykład problemu, który został stworzony przez nietrafiany pomysł i teraz jest dzielnie rozwiązywany. Od zarania dziejów wkładało się do ROM takie rzeczy np. copyright i nikt się nie dziwił. I jeśli uwarunkowania...
(...) matować liczby z zerami wiodącymi (najlepiej bez sprintf zajmującego dużo FLASH), zwłaszcza w wypadkach jaki podałeś przy DS18B20 int16_t fraction = (temperature & 0xF) * 625; // Część ułamkowa, 625 = 0.0625 * 10000, przecież gdybyśmy wyświetlili samą liczbę po przecinku mielibyśmy 0.625 zamiast 0.0625 ? ### 1) Weryfikacja w asemblerze na uC...
Witam, mam takie makro: #define putfslx(val, id, flags) asm volatile (stringify(flags) "get\t%0,rfsl" stringify(id) : "=d" (val)) stworzyłem sobie funkcję w której używam tego makra: #define FSL_CONTROL c void ANNA_InitWeights(u8 FslId){ int i; putfslx(0x00000002, FslId,...
To przyklad funkcji do konwersji liczby na stringa z zastosowaniem operatora modulo. Dlaczego tak długo i nieelastycznie? Jesli w ogóle to tak: (ale jest standardowa funkcja itoa,uitoa itd, być moze w asemblerze a wtedy modulo i dzielenie być może oszczędniej robi) To dwie najbardziej kosztowne operacje. Optymalizować można też przez wprowadzenie odejmowania...
w tym poradniku znalazlem pobieranie tekstu z konsoli ale jak tego uzyc w programie ? Podałeś link do kursu asemblera dla DOSa (na procesory CISC), a w temacie się pytasz o symulator procesorów MISP (RISC), czyli właśnie SPIM ;) ale i tak nie dziala :( Bo masz błąd, literówkę w linii 19, zamiast $al powinno być $a1 i program działa :)