Po raz kolejny zwracam się z prośbą do kolegów forumowiczów. Od pewnego czasu pracuję nad regulatorem fazowym zwykłe sterowanie triaka, wykrywanie 0 sieci nastawiane opóźnienie załączenia nic odkrywczego. Postanowiłem napisać taki program aby rozpocząć przygodę z uC. Pierwsza wersja powstała...
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....
Teraz potrzebuję jeszcze porównać dwie komórki w pam. ram jedna to stan portu , druga to stała wartość wogóle są dwie stałe wartości stała1 stała2 czyli muszą być 2 porównania jeśli zgodne to skok do podprogramu jesli nie to kontynuacja programu cjne a, stala1, ste-7; ale...
mnozenie wykonałem i po paru poprawkach wychodzi mi z dokładnością +-0,1% Rh na wyświetlaczu co w porównaniu z dokładnością czujnika jest praktycznie wartością znikomą. Dzięki za odświezenie informacji. Mam teraz trochę gotowych zebranych "algorytmów działań" więc jakby ktoś potrzebował...
Witam próbuje napisać projekt a mianowicie program pracy wentylatora w łazience chodzi o to urządzenie miało by jeden czujnik na wejściu i wentylator na wyjściu Po wejściu osoby do łazienki odmierza sobie czas pobytu tej osoby w łazience oczywiście po wyjściu program powinien porównać...
Witam, jestem w trakcie realizacji mojego 1wszego projektu na AT89S52. Od niedawna jestem szczęśliwym posiadaczem klawiatury "telefonicznej" 12 przyciskowej (niestety nie jest to klawiatura matrycowa, i ma 14 wyprowadzeń) , dotychczas nie udało mi się jej dobrze "obsłużyć". Chciałbym sczytywać...
Dość długo czekały na swoją kolej Bo materiały wtedy znalezione w sieci nie umożliwiały mi przetestowania podanych przykładów (większość była w C i to na AVR a ja utknąłem w asemblerze 8051) Używam wersji na 868MHz bo takie akurat dostałem Nie testowałem jkichś wyżyłowanych...
Wybór należy do ciebie zależy co ma wynikać z tego porównania. A zanim zadasz pytania na forum spróbuj sam. CJNE wydaję się logicznym rozwiązaniem. Odejmowanie i porównanie z zerem jest również możliwe. A jeśli chcesz uzależnij jakiś fragment programu od tego która z liczb jest większa...
Nie wiem czy dobrze zrozumiałem? Ale po przerwaniu 16h mogłoby być: 1 jz powrót_do_pętli_przed_przerwaniem_16h ... cmp al,(kod_klawisza_0) 3 jb powrót_do_pętli_przed_przerwaniem_16h ... cmp al,(kod_klawisza_9) 5 ja powrót_do_pętli_przed_przerwaniem_16h ... dalszy kod W...
Zawsze dobrze porównać z kompilatorem jak się uczy - łatwiej wyłapać własne błedy Proponuje zajrzyj do linka - porównaj
Witam. Cieszę się że pomogłem. Te ORG-i to moje przyzwyczajenie - początek programu od adresu 00h, program właściwy od 30h - taki duży przeskok przez wektory przerwań. Ogólnie ORG jest dyrektywą kompilatora, powoduje umieszczenie kodu programu od adresu podanego jako argument. Jak najbardziej...
Tak tylko przy takim podejściu nie starczy mi miejsca w rejestrach a nie bardzo mogę wykorzystywać pamięć (zostało mi już jej stosunkowo mało). Ostatecznie wynik też musi być 8bitowy więc wolałbym ograniczać wynik w każdym możliwym momencie, ale znów nie chce ciągle wyniku zaokrąglać...
WITAM! Poniżej wkleję kod źródłowy mojego programu napisanego w asemblerze.Mam problem ponieważ zostałem zapytany przez wykładowcę gdzie w nim jest porównanie napięć na obu potencjometrach (bo dotyczy on potencjometru analogowego i cyfrowego i jeżeli przekroczy się tam jakąś wartość...
Skoro masz program, i mówimy o asemblerze to odpowiednie instrukcje potrzebują konkretną liczbę cykli procesora na wykonanie - przeanalizuj program zgodnie z dokumentacją techniczną procesora (uwzględniając częstotliwość z jaką będzie pracował)... co do poprawności - kod U2 służy...
1. Typ procesora- uznałem że pisząc w dziale '51 domyślnie chodzi rodzinę '51, czyli 8051, 8052 itp. Nie wyszczególniałem że chodzi mi o dokładnie posiadany at89s52, bo pytanie dotyczy się całej rodziny-architektury. Wpis dla 6502 miał pokazać ideę dla obeznanych z tym asemblerem. 2....
Witam, od dawna programuję w języku asemblera nieprodukowane już procesory typu 89C51. Chciałbym jednak przejść na język C i na AVRy np: Atmega8, a to wszystko z oczywistych względów tj. bogatsza architektura wewnętrzna jaką mają AVRy w porównaniu z przestarzałą 51 z tego co słyszałem...
Gdyby się nie dało zrobić takiej pętli w asemblerze, to nie dałoby się jej zrobić w żadnym innym języku. Więc odpowiedź brzmi - tak, da się. Jak? Dodaj kolejne dwa rejestry, czyli ADIW R24,R16 następnie ADC R26,R18, ADC R27, R19, przy czym R16-R19 zawierają 32-bitowy krok. Stosownie należy...
Jako, że moja przygoda z ADuC812 powoli zaczyna dobiegac końca, czas pomysleć o wykonaniu swojego własnego układu testowego. Jaką rodzine procków wybiorę tego jeszcze nie wiem, z czasem wyjdzie. Natomiast jak to nie wiem w jakim środowisku programistycznym osiąde. Czytałem trochę o komilatorach...
Właściwie zgadzam się z Bolkiem, ale czasem "nie warto wyważać otwartych drzwi" - po to producent zamieszcza przykładowe, gotowe procedury, aby się na nich wzorować. Ja jednak lubię samodzielnie opracować sobie coś, a dopiero potem porównać to z profesjonalnym programem (lub układem - nie...
PS Ciekawe co kolega LightH a user "ugotuje" :?: Kiepsko to widać na forum :( No to kolega LightHouser ugotował, przy konsultacji przepisów w C z Xitami, kulinarnie to ujmując, żeby było widać... :). Trzy procedurki do wyboru (operacje oparte na testowaniu bitów, pobieranie kodów z tabeli...
Wydaje mi się , że do takich porównań lepiej użyć XRL , niż SUBB . Piotrek
Błąd jest tu - stos ląduje w obszarze I/O (okolica przetwornika ADC) : ldi r16, low(RAMEND) out SPL, r16 ldi r16, high(RAMEND) out SPL, r16 Porównaj pierwsze słowa dla procesora z moim załącznikiem (plik Main.asm) ;Proc InitStack() InitStack: ; It must be not to...
- brak możliwości bezpośredniego dodania stałej do rejestru A nieprawda. Można odjąć stałą. Można odjąć wartość ujemną... Dodatkowo, organizacja pamięci programu w słowa... bllee, komplikuje to trochę odczyt danych z pamięci programu... w 51 jest 16 bitowy DPTR i jest pięknie,...
cmp R1,20 je etykieta A co to jest?? :) Może miało być tak ? cjne R1,#020h,etykieta ..... ..... .... .... cjne - porównaj i skocz jak nierówne :)
chodzi o to że jeżeli podczas czekania w głównej pętli programu wystąpi przerwanie zaraz za rozkazem zmieniającym flagi to po powrocie mogą one być zmienione i niezależnie od wyniku porównania program może "pójść" gdzie indziej. Dlatego dobrze jest zadbać o to żeby takich sytuacji nie...
Nikt Ci nie odpowie na pytanie o ile kod w C będzie większy od kodu napisanego w assemblerze. A to dla tego że kod w assemblerze też może być bardzo "nieekonomicznie" napisany i może sie okazać że kod w C będzie wynikowo mniejszy. Generalnie moje zdanie jest takie że jak ktoś umie napisać...
Hmm, co ciekawe pod win2k ten programik działa dobrze. Mam tylko jeszcze jedno zastrzeżenie, wywołujesz funkcje SetDlgItemText dając jej jako argument bliżej nieokreślony łańcuch znaków, jeśli ten łańcuch nie będzie miał gdzieś w treści znaku o kodzie zero to program poleci dalej po...
Witam Wszystkich Napisałem malutki programik, który ma za zadanie wyświetlić mi na jednym module matrycy LED jedną kolumnę w całości, jedna pusta a następnie ma wyświetlić górną polówkę kolumny. Tak jak to przedstawiono na rys. poniżej: Program wygląda następująco: .include...
Dar.El , tak szczerze to się zastanawiałem co Twoja modyfikacja wnosi... Rozszerzyłeś rejestr reszty z 16 do 24 bitów, ale reszta nie może być większa niż dzielnik. Aha! Jeśli dzielna ma więcej bitów niż dzielnik, to rejestr reszty może się przepełnić i porównanie da wtedy błędny...
to fajnie:D a wiec naciśniecie klawisza "prawo" w akumulatorze 0B w "lewo" 0A w "dół" 0D w "górę" 0C. Teraz kombinuje żeby w rejestrach np R5 zapisać 0B w R6 0A itp a później chciałbym to porównać do akumulatora i jeśli by było równe to wykonało by dane działanie a jeśli nie to...
Jak ja lubię taki niekomentowany kod ;-) Na Twoim miejscu zrobiłbym raz katalog na PC, a raz Twoim programem i porównał obrazy binarne powstałe w obu przypadkach. Albert
a porównaj tylko nie z 16 i 32, tylko innymi wartościami, względnie z 255
Moim zdaniem nigdzie nie skacze. Disassembler nie radzi sobie z podaniem własciwej linii kodu źródłowego. Porównaj sobie z plikami .lst. Jeżeli debugujesz kod zoptymalizowany, to musisz pogodzić się z tym, że momentami bedzie to zadanie lekko schizofreniczne.
Witam, za zadanie mam zaprojektować układ czegoś przypominającego dyktafon, wykorzystującego kartę pamięci, wybór padł na mmc ponieważ w EP był artykuł na temat komunikacji z tą kartą, po dokładnym przestudiowaniu artykułu napisałem już część programu która powinna bez problemu...
1. Zapisuj kod w znacznikach MOV AL,BX[SI] CMP AL,BX[DI] JG etykieta
Witam. Pisze właśnie 48 kanałowy moduł PWM. Procesor to atmega 169. problem Polega na tym że odświeżanie jest trochę za wolne jak na moje oko - nie wiem czy nie przegiąłem z liczbą kanałów obsługiwanych przez jeden procesor. Pierwotnie napisałem program w bascomie - działa ale zdecydowanie...
33suchy. Dobrze się wczytaj, a na pewno zrozumiesz. To jest taka uwaga, dla ludzi bardzo początkujących. Ja rozumiem, że w asemblerze, napisanie programu GUI, zajmie dużo czasu i dużo linijek. To co z tą myszą? Ja już nie rozumiem. Jeśli chodzi, o asembler, to pewne urządzenia, podobno można...
Jeszcze spytam o taki sposób, który jednak nie wiem czy jest do zrezalizowania. Chodzi o to np czy mogę odwołać się do 0 bitu AL? Przecież jeżeli bit 0 będzie 0 to jest to liczba parzysta, a jak 1 to nieparzysta. Jeśli tak można to jak to zapisać ( czyli odwołać się do tego bitu i porównać...
to stawiam flaszkę, że coś masz nie tak z timingami :) zrób, przynajmniej na razie, odmierzanie czasu w oparciu o timer. Nie jestem mistrzem assembera, twoja funkcja, mimo że wygląda dobrze, chyba nie działa dobrze. Ewentualnie fusy lub zła definicja w SYS_FREQ w porównaniu do rzeczywistości.
Ok, ale nawet gdyby przyjąć twoje przeliczniki DMIPS to wychodzi raptem różnica 3,5 razy, a nie 20 razy jak napisałeś. Nawet dodając do tego różnicę w zegarach (20-32 MHz), vs. max 48 MHz nie wychodzi owe 20-razy. Czepiam się, ale sam lubisz być precyzyjny. No i wiesz, że znormalizowane...
Wprowadź do programu dodatkowe zmienne (flagi) zmieniając ich wartość/stan i monitoruj je. Jeśli użyjesz zmiennych bajtowych, to użyj np rozkazu "cjne" i porównaj to do zera lub jedynki. Wartości zmiennych ustawiasz przy sprawdzaniu wciśniętych klawiszy, natomiast ich stan sprawdzasz w pętli.
Masz problem z drganiem styków przełącznika. Możesz go wyeliminować programowo, np. porównaj dwa razy dokonany odczyt PD7 i uznaj że jest prawidłowy jeśli 2x się potwierdził (przy naciskaniu i zwolnieniu) możesz jeszcze dodać małą pętlę w której kilka razy sprawdzisz stan tego wejścia,...
Tak. Na początek wyrzucić RET po RJMP Piksel_rowna_sie_jeden. A następnie, analizując ten zestaw instrukcji napisać równoważny kod: [syntax=armasm]Piksel_rowna_sie_ze... kasujesz R16 instrukcją CLR R16, to po co ładujesz tam literał przez LDI R16,0? Bez sensu. Skoro...
Ale czego to ma dowieść? Że tracimy parę taktów w określonych sytuacjach? No i co z tego. W sumie nic. Tylko chodzi o zmianę podejścia. Nie wymaga to niczego poza pamiętaniem że się ma 32 bity do dyspozycji i jest to naturalna wielkość danych i bez potrzeby nie trzeba tego zmniejszać....
No można, ale w porównaniu z wywołaniem int 21h do wyświetlania (to mało wydajny kawałek DOSa, pierwsze co zmieniałem w wymagających programach) to będzie pikuś. Nigdy mi się nie chciało tego liczyć (chodzi o dłuższe algorytmy niż pojedynczy rozkaz) choć wiem, że niektórzy liczyli....
Deklaracja dla attiny4313 różni się wartościami bo układ ma dwa razy więcej ram , flash i eeprom ,ale o to nie musisz pytać wystarczy że porównasz pdfy attiny2313 i attiny 4313.
Dzięki Kiedyś jak na PC (w Borlandzie) rzutowałem int na float to miałem problemy z dokładnością, bo po zrzutowaniu float nieco się różnił, co jest naturalne i wynika ze sposobu zapisu (i obliczania floata). Przypuszczam, że zakładając: int a float b warunki a>b oraz b>a zadziałają,...
wilku_88 -> jak widzisz w asemblerze też trzeba się nagłówkować aby dobrze optymalizować. A jak już zauważyłeś czy zobaczysz w przyszłości przy takich porównianiach swoich programów napisanych w C i w asemblerze to tak jak mówił kolega wyżej - zajrzyj sobie zawsze do pliku z wygenerowanym...
Coś mi w tym teście nie pasuje. Kilka układów z tym samym rdzeniem, a takie rozbieżności? O ile czasy żonglowania pinem można jakoś łatwo wytłumaczyć to czasy obliczania filtru już są dziwne. Nie wnikałem dlaczego, ale z chęcią dowiem się w czym problem. ATMEL SAM D10 3 cykle 27...
Witam, Mam do napisania program obliczający miejsca zerowe funkcji liniowej. Nie rozumiem tego fragmentu kodu cmp word ptr ds:[inta],0h jne jestm0 cmp ... ptr ds:[inta+2h],0h je koniec W pierwszej linijce porównuję ze zmienna inta jesli jest różna od zera to jest miejsce...
Żeby nie było - optymalizacja też może wchodzić w grę. Nowoczesne kompilatory potrafią (czasami) rekurencję zamienić na pętlę, ale nie należy zbytnio na tym polegać bo to ruletka. Jak chcesz sprawdzić czy tak się stało dla drugiego przypadku to trzeba porównać asemblery
Ale mimo wszystko zastanawia mnie czego unikać aby przysłowiowo nie "zamulić" programu. Moze są ogólne rady. Zakładając, że nie korzystamy z wait czy waitms w pętli głównej to widać, że już jakieś doświadczenie masz w programowaniu, i powoli jak mówią koledzy wyżej dochodzisz...
Podziwiam, zwłaszcza z tego powodu iż dotyka to asemblera x86, który to w wydaniu 8086/80286 jest szczególnie przykrym doznaniem. ;) Przykrym doznaniem? Bardzo fajny assembler, na pewno lepszy od RISCowego 6502... Jedyne czego tak naprawdę brakowało w asemblerze 6502 (i jego pociotek)...
Trzeba rozróżnić wartości dydaktyczne, od przyuczania do zawodu. Studia to nie zawodówka. Na studiach uczy się logicznego myślenia, rozwiązywania problemów i przede wszystkim uczenia się. Słucham? Coś się chyba koledze pomyliło. Gdzie zawodówka a gdzie studia? Nie ma porównania...
asembler w ARMach to tylko istnieje ze wzgledów historycznych no to kolega walnął jak wiadomo kto i czym a na dodatek w co, z tym stwierdzeniem. Można by z niego wywnioskować, że z kolei w jeszcze wyższych procesorach np Intelach które są w PCtach albo procesorach używanych w MAC'ach...
Porównaj sobie sposób, który napisałem wcześniej, spójrz do pliku *.lss i sprawdź jak wygląda to w asemblerze, porównaj sobie do dziesiątek operacji, które miałyby się wykonać w tych proponowanych przez ciebie IF'ach. Toż nie dość, że zajęłoby to więcej miejsca, więcej czasu to...
Wg mnie masz dwie drogi do wyboru na początek: Atmel i PIC. Atmel jest tańszy i uniwersalniejszy (kompatybilny z '51). ja zaczynałem w szkole od 51 i asemblera ale w domu niestety miałem problem ze zdobyciem programatora. Potem kumpel wciągnął mnie w PIC. Programowałem je w C. Dla znającego...
hyhyhy sam pamiętam, gdy akurat kiedyś poznawałem nowy dla mnie asembler właśnie procków AVR (bo wcześniej to głównie dawno temu tylko asemblery 8051 czy Z80) i jak robiłem jakiś tam hobbystyczny projekcik: kurka wodna , chyba z miesiąc się (sorki za wyrażenie) pierniczyłem z tym...
Witam, dziękuje za zainteresowanie moim tematem:) Efekt ma być taki że diody (każda osobno) mają migać w losowy sposób. Całość ma być zainstalowana na listwach ok 1,5 cm szerokości więc procesor nie mógł by być za duży. Dlatego spodobał mi się tiny 13 lub tiny 2313 (bo takie mam )...
Czy ty czytasz co piszesz? Narzekasz, że na studiach masz ARM, a pytasz o... ARM. ARM 51 w porównaniu do st32 (cortex m3 )to wielka różnica całkiem inne instrukcje i struktura rdzenia .W 51 jest asembler bardzo prosty lecz już w ST32 THUMB i THUMB2 dużo bardziej wszechstronne w porównaniu...
Dawno temu programista ,to był człowiek z wiedzą ,który znał asembler i potrafił myśleć binarnie . Ale że człowiek sobie upraszcza to dziś mamy arma w czajniku który przyspiesza mało optymalny bo uniwersalny kod. Rzeczywiście działa szybciej na 100MHz zegarze w stosunku do starej 0C51...
Twierdzisz, że złożone konstrukcje JAVA, zapisane w asemblerze, czy PASCALU będą efektywniejsze od tych samych konstrukcji emulowanych sprzętowo :?: Nie ma czegoś takiego jak "złożone konstrukcje JAVA". Java jest kompilowana do byte-kodu, który przypomina język asemblera po kompilacja. Idea...
Jest to procesorek CISC, co upraszcza programowanie w asemblerze. No, niektóre z elementów asemblera AVR przydałaby się w zasobach 8051. Na przykład jasne i czytelne skoki: BRGE, BREQ, BRLT. W 8051 trzeba pamiętać, że odpowiednia kombinacja flag Z i CY to większe, mniejsze, równe. 8051 ma...
Ja uważam, że nie ma to jak zacząć poznawać dowolną rodzinę procków za jaką się zabieramy właśnie od asemblera. Warto go nawet bardzo dobrze poznać bo później gdy trzeba zrobić jakieś krytycznie-czasowo ważne wstawki to wiadomo - asm ;) Natomiast w większości projektów jak sam...
Zastanawiam się ile jeszcze założysz tematów w kształcie O panie kolego teraz to wypaliłeś! Nie skomentuję bo to śmieszne. Albo nie , właśnie odpiszę , i to w punktach aby było jaśniej , gdyż już drugi raz próbujesz mnie obrazić i zmieszać z błotem: 1.Co do mojego pisania...
Chciałbym zauważyć że ja chciałem uzyskać pomoc w wyjaśnieniu komend lub bezpośrednią odpowiedz jak mam zrobić i czy da się tak zrobić aby µC zapamiętał zmienną odczytaną z wejścia jako jakąś liczbę. Z tego co widzicie nie dostałem żadnej odp na ten temat. Niestety pytanie...
A czy kolego przejrzałeś wygenerowany kod? Przyznaję, różnice pomiędzy -O3 i -Os sprawdzałem dawno, kiedy poznawałem kompilator i się zastanawiałem jakich optymalizacji użyć. Z jakiegoś powodu jednak wybrałem wtedy -O3. Dla różnych programów różnice między O3 a Os sięgają......
choć nie mam pomysłu jak formalnie wymienione przez Ciebie kwestie rozwiązać , to i tak nie uwierzę że się nie da. W tm kontekście wiara w Jawę czy C takie czy inne wygląda jednako podejrzanie. Przecież nikt Ci nie każe. Ja osobiście zachęcam fanów asemblera do pisania w nim. Szczególnie...
Pisałeś może coś w C czy asemblerze żeby mieć porównanie ? Ja też pisząc w bascomie myślałem że , złapałem byka za rogi jednak po pewnym czasie i zasmakowaniu innych języków przy okazji kilku nieudanych prób realizacji projektu przejrzałem na oczy . Jeśli będziesz szukał pracy jako...
Testowany w tym materiale konwerter prąd->napięcie umożliwia pomiar małych wartości prądu (µA, nA) obserwując wskazania na woltomierzu lub miliwoltomierzu . Do wyjścia można podłączyć oscyloskop i rejestrować zmiany wartości prądu w czasie. Niska rezystancja rezystora...
Jeśli chodzi o wybór języka to nie jest to sprawa prosta bo napisanie tego programu w asemblerze wymaga bardzo dobrej znajomości mapy pamięci, rejestrów (SFR) i niezłej praktyki od programisty. Poza tym wychwycenie błedów w asmie jest dużo trudniejsze niż w językach wysokiego poziomu, no...
Ale przecież Tiny15 posiada 32 rejestry a CodeVision wyraźnie wypisuje gdzie umieścił jaką zmienną: wysw -> r4 dig0 -> r5 dig1 -> r6 dig2 -> r7 dig3 -> r8 Nie rozumiem tego. Jak wrócę to spróbuje porównać asmy w obu wariantach programu. ---------- Dobra, nie znam sie na asemblerze...
Chyba faktycznie zaczne sie uczyc assemblera bo ten mikropascal nie ma wogóle żadnej pomocy Wiesz, powiem Ci, że aby zacząć programować w asemblerze wystarczy znać nazwy najważniejszych rejestrów, wiedzieć za co odpowiadają i mieć pod ręką listę rozkazów dla danego procka. W porównaniu...
kolego markosik20 - macie rację mówiąc "Niestety nie do końca" ;) bo ja też nie mówiłem, że tak jest zawsze i kropka. Tak naprawdę zależy dużo od programisty - zapotrzebowania itp itd .... Dla przykładu ja piszę soft jak narazie tylko w asemblerze i nie mam większych problemów z zagmatwaniem...
Właściwie to lepiej się nauczyć C++ i asma, bo potem 'przesiadka' na C to kwestia oduczenia się paru nawyków z C++ i zaprzyjaźnienia z jego bibliotekami. Edit: Trochę rozwinę swoją wypowiedź. C++ jest obecnie chyba najpopularniejszym językiem w związku z czym jest do niego najwięcej...
Witam ponownie po małych poprawkach program działa #include <avr/io.h> #include <util/delay.h> #define cbi(add,bit) ((add) &= ~(1 << bit)); #define sbi(add,bit) ((add) |= (1 << bit)); #define F_CPU 16000000UL int...
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,...
Witam! Interesuje mnie programowanie mikrokontrolerów. Zdecydowałem się na mikrokontrolery AVR. Po przeczytaniu chyba tysiąca odpowiedzi -tu na Elektrodzie- na pytanie w stylu "od czego zacząć naukę programowania...?" zrodziły sie w mojej głowie trzy pytania: 1. Czy warto zacząć...
Nic nie trzeba informować kompilatora - Bascom ładnie przyjmuje wprost rozkazy asemblera ale w zasadzie atom1477 zrobił to nawet bez asemblera - sorki - po prostu "ręcznie" odwołał się do rejestrów i wpisał do nich odpowiednie wartości tzn poustawiał bity tak żeby coś tam działało w...
zerpo --> dlatego dodałem, że to nie przesada - bo każde rozwiązanie , które działa poprawnie jest ok ;) i wcale się nie kłócę które lepsze. Pewnie, że to , które podałeś spokojnie zadziała z tym wentylem. Jednak polemizowałbym ostro co do tego, że rozwiązanie podane przez ciebie...
gaskoin, zauważ że piszę o programach w C na kontrolery AVR:) Nie ma więc mowy o 8TB, a najwyżej 32kB, co zasadniczo zmienia podejście i warto walczyć o każde 100 bajtów:) Kontroler ma 32kB a mój początek programu ma już 5kB. To jest początek programu w porównaniu z całym programem napisanym...
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...
Co do picow napisałes ze mozna zmieniac w nich zegar podczas pracy. Ja mówie że atmel też taką funkcje posiada i oto sie złościsz? Ja się nie złoszczę - ze mnie jest niespotykanie spokojny 43 latek. Porównaj moją wyopowiedź i wytłuszczony jej fragment A tak przy okazji ......
Nie mówiąc już o kolejnych poziomach optymalizcji, globalnej i optymalizacji na poziomie generowanego kodu w asemblerze (np. gcc 4.5 i nowsze, albo -mrelax). Czyli np. zamiana jmp na rjmp, call na rcall itd gdzi eto tylko jest możliwe. Dla człowieka taka optymalizacja byłaby upiorna. Nie żebym...
Każdy inaczej widzi optymalizację dla jednego to program w 2 godziny dla innego zamiast 8kB w C 4kB w asemblerze kosztem czasu który ,trzeba poświęcić na napisanie kodu . Kolega napisał program w Bascomie , czy to tak ciężko zrozumieć że łatwiej jest wstawić tam 4313 i dopiąć np 25320...
Dodać RETI oczywiście należy, a dbać o rejestry także :) Jednakże w większości przypadków, nie ma potrzeby uciekania się do wstawek assemblera, jedynie w krytycznych aplikacjach - wtedy oczywiście tak. EDIT: Bardzo fajnie porównał to Tomek w swojej pierwszej książce w rozdziale Atrybut...
Dzień dobry wszystkim. Mój pierwszy post na elektrodzie, dlatego pięknie witam :) Nadziałem się na necie na ten wątek (szukając jakichś nowych materiałów o CA80) i aż mi uśmiech wykwitł - myślałem, że tylko ja odkurzyłem swojego CA80, żeby poczuć trochę czaru retro. Mój CA...
Nie chcę zakładać nowego tematu więc tutaj pochwalę się tym co udało mi się dzisiaj uruchomić. Zbudowałem sobie falownik trójfazowy na mikrokontrolerze avr. Wzorowałem się na programie falownika jednofazowego kolegów Tomasza Gumnego i Adama Tatusia. Niestety większość avr-ów posiada...
Z mojego doświadczenia wynika że wszystko dąży do ułatwienia życia programiście i zastąpienia asemblera przez język wyższego poziomu . Ponieważ ten ostatni często wygodę użytkowania okupioną ma wydłużenkem kodu i czasu jego wykonywania nacisk idzie w kierunku układów z większą...
Nie rozumiem tego hejtu na Arduino. Jest złe bo co? Serio nie rozumiesz czy tylko tak piszesz? Ja widzę dwa źródła znienawidzenia arduino przez elektroników z dłuższym doświadczeniem: - techniczny - arduino narzuca pewien sposób myślenia o programie, czyli np programista piszący od wielu...
Pamiętam ten odcinek, cóż GPT korzystał z małej bazy tekstów asemblera i coś generował ale zbyt słabej jakości dane były dostępne. Ciekawie robi się gdy AI może sprawdzać swoje "pomysły" eksperymentalnie, taki był pomysł na syntezę chemiczną, AI modelowało eksperymenty a następnie...
Nie wiem czy sie przyda ale mam opis bootloadera ale na ATmega8 oto on napisany w bascomie: 'Program Bootloadera (monitora) dla ATmega8 umożliwiający ładowanie 'programu do pamięci Flash przez interfejs RS232 z prędkością 19200 'bodów 'Bity fuse należy ustawić, by na Bootloader...
Witam Właśnie jestem w trakcie przerabiania wszystkich możliwych makr związanych z portami AVR na wzór makr Atmela. Może ktoś wie jak w makrach sprawdzać brak parametru? Jeżeli chodzi o zmianę bitu lub bitów to oba makra się przydadzą, o wiele wygodniej będzie stosować wg potrzeb raz...
kamyczek -> także się zgadzam z twoim podejściem. I jak mówię, niech w bascomie czy C program zajmie 100% więcej miejsca ale jeśli wynik ma być ten sam za to uruchomienie układu ma trwać 80% szybciej (o ile się da) to wybiorę bascoma lub c niż asemblera. Sam zawsze podziwiam np projekty...
0. Proponuję przeczytać opis instrukcji rdzenia z rodziny C51. Widać, że tego nie zrobiłeś. 1. Adresowanie indeksowe może być zrealizowane tylko w oparciu o rejestry R0, R1, DPTR i PC. Poprawne są zapisy: [syntax=x86asm] MOV A,(at)R0 DEC (at)R1 MOVX (at)DPTR,A MOVX A,(at)R0 MOVC...
Cyklicznie trafiam na dyskusje próbujące określić, co jest lepsze - podejście niskopoziomowe czy użycie gotowych platform / frameworków. Ostatnio zastanawiam się, czy taka ogólna dyskusja ma jakiś sens? Przy ściśle określonym przypadku można dyskutować, jakie rozwiązanie jest lepsze...
W amidze system operacyjny zajmuje TYLKO 512KB:) (w A500, A1000, A2000 - 256KB) a nie 1GB jak np. win XP. Jest to wspanialy okienkowy systemik z olbrzymimi mozliwosciami zmian. To prawda, ale nie przyrównuj systemu z Amigi do XP. Sprzęt w Amidze jest w znacznej mierze niezmienny. Nie wymieniasz...
Jeśli programowanie jakiegoś prymitywnego procesorka w jego kodzie wewnętrznym to niedostępny dla większości programistów szczyt Sagarmatha, to gdzie są ludzie piszący oprogramowanie narzędziowe, systemy operacyjne, tworzący złożone systemy sterowania czy rozproszone systemy internetowe....
Pisze program w asemblerze. Oto dokładnie o co mi chodzi. Chce porównać daną którą mam w tablicy np. 00000010 z daną wprowadzaną do portuB. Młodsza część portu B (b0-b3) to dane które są ważne. Starsza część mnie nie interesuje. Ponadto młodsza część jest wprowadzana do procka...
Niestety próbowałem sam, ale juz nie mam siły. Przeczytałem tematy na forum jednak nie widze w nich rozwiązania problemu, dlatego zacząłem nowy temat. Problem tkwi w tym, że otrzymuje z układu DS18B20 po dokonaniu odczytu z rejestrów wynik w postaci FFFF. Program piszę pod ATMega48. Czujnik...
Witam Ekperymentatorów i Ciekawskich...:) Jestem świeżo zarejestrowanym użytkownikiem , moją pasją ( jedną z kilku :)) jest strzelectwo wiatrówkowe. Cały ambaras w tym hobby to to , aby karabinek wystrzeliwał śrut z mozliwie jak najbardziej stabilną energią. ( o ogromnym uproszeniu...
A nie wiecie może jak klasy chowane są w pamięci? Organizacją wykorzystania pamięci (której jest baaardzo mało w porównaniu z PC) zajmuje się kompilator. Jeżeli nie znasz architektury mikrokontrolera ani jego asemblera to będzie Ci ciężko uruchamiać sprawnie działające programy. W...
Mam problem. Chce podejrzeć jak wygląda program po skompilowaniu. Program jest banalny, coś w stylu : #include <iostream.h> using namespace std; int main(void) { int a, ii, jj; i tu parę insrukcji return 0; } Czy znacie jakiś disasembler, który mi pokaże w...
Mam problem z przerwaniem od Timera0. Chodzi o to by Timer0 zgłaszał przerwanie w trybie pracy z porównaniem. Jest to tryb Clear Timer on Compare Match (CTC). Licznik zlicza zdarzenia zewnętrzne i w momencie zliczenia do zadanej wartości ma zgłosić przerwanie i zacząc liczyć od zera. Aby to...
Glownie chodzi mi teraz o objasnienie w jezyku polskim, czym poszczegolne polecenie sie zajmuje, a o to one : Wiesz... Bez choćby elementarnej znajomości angielskiego będzie Ci trudno. Nie znam żadnego tłumaczenia opisu poleceń języka IL na polski. 1) EQU deklaracja symbolu, <nazwa>...
Rozumię, że asembler został użyty w momentach krytycznych czasowo ale czy tylko ? Asembler był tu niekonieczny. Zastosowany jest tylko do obsługi wyświetlacza. Pewnie zdecydowaną większość miejsca w pamięci zajmuje tablica z danymi do sieci, mam rację? To że program ma 5800 linii...
CJNE a, 4, next5 oznacza: "porównaj zawartość akumulatora z zawartością komórki pamięci numer 4 i jeśli są różne - skocz do next5". Co masz w komórce pamięci numer 4? Pewnie chciałeś porównać ze stałą 4 - w asemblerze 51 jest taki znaczek #...
1. Ja zaczynałem od pisania na peceta. 3. ...i od książki Kernighana i Ritchiego (ale to ciężkostrawna lektura). Nie mam żadnej literatury ani o mikrokontrolerach ani o pisaniu w C na mikrokontrolery (ale nie twierdzę że to jest dobre - po prostu szkoda mi było kasy na to). 2. pisałem najpierw...
dzieki Feniks własnie o takie proste wytłumaczenie mi chodziło, sprawdze to w domu i zobacze jak działa. w miedzyczasie sie troche pobawiłem i natknąłem się na jeszcze jeden problem: czy ktoś mógłby mi wytłumaczyć co sie dzieje? a wiec tak napisałem głupi programik dla zabawy: .include...
eee..btw. PIC16F628.. wiem ,że to fajna sprawa (w porównaniu do PIC16F84A),ale nie jestem pewnien ,czy da się go programować przez JDM'a .. zdaje mi się , że tak, ale na programatorze pisze ,że obsługuje on tylko PIC16F84(A).. Pozatym w moim "kochanym mieście nie da się kupić innych PIC'ów...
Jeśli to ma być duży projekt, to zdecydowałbym się na C. W asemblerze duże projekty to kanał, do którego jak raz się wejdzie to potem ciężko wybrnąć. Zgadzam się Druga rzecz - jeśli C to musisz mieć kompilator. Tak się składa że do AVR masz GCC a do PICów ciężko o jakiś kompilator...
Morph - prosiłeś o opis metody generowania kodu dla F24x - ponizej zamieszczam przykładowy opis - praktycznie "od a do z" Zaznaczam tylko - że prezentowany program jest wręcz trywialnie prosty i wybrałem go tylko dlatego, aby ułatwić analizę plików generowanych przez assembler, linker oraz...
ja robiłem disasemblację ale nie znam na tyle asemblera, żeby dopatrzyć się przyczyny. porównywałem kod dla różnych wartości $crystal ale do żadnych wniosków nie doszedłem. PC A to szkoda ,bo gdybyś dokładniej się przyjrzał(porównał pliki HEX) ,to zauważyłbyś niechybnie,...
Czy ma ktoś może jakieś programy w asemblerze lub c dotyczące tego wyświetlacza? Potrzebuje do porównania, bo mi nic nie działa i nie wiem dlaczego.
Tak szczerze na µC zaczynałem w asm i z nim nie skończyłem. Na poczatku było sporo materiału do wchłonięcia, pdf-a od AT90S8515 w niektórych miejscach znam na pamięc... ;) Tym niemniej to nie ja zadałem tu pytanie, na które odpowiedzi powinien udzielić sobie każdy sam. Tu nie chodzi,...
W czym programować najlepiej w asemblerze, jeżeli masz zamiar robić w przyszłości poważne projekty! To chyba jakieś żarty :D Kto poważny dzisiaj poważne projekty pisze w asemblerze? Kto się w takim olbrzymim kodzie połapie? Kto po przerwie będzie wiedział "co robił ten fragmencik...
Witam Jest to mój pierwszy post na tym forum, ale mam nadzieję, że nie ostatni. Przedstawiam wam swoje elektroniczne "wypociny". 1. Wstęp Robot powstał ponad miesiąc temu, jego wykonanie (od pomysłu) zabrało mi kilka tygodni. Mój MicroBot to Line-Follower, ale równie dobrze może...
Witam '51 + asembler. Zbudowałem zegar (na przerwaniu), chcę teraz dopisać kod umożliwiający sterowanie urządzeniem zewnętrznym za jego pomocą. Załaczanie i wyłączanie o określonej godzinie/minucie z uwzględnieniem przełomu (np. załączanie o 20:10, wyłączanie o 20:00). Usiłuję...
Jeśli chodzi o AVR: Zapis stałoprzecinkowy robiony jest wg. dwóch formatów: 2^7, 2^6, 2^5, 2^4, 2^3, 2^2, 2^1, 2^0 w zapisie -1, 2^{-1}, 2^{-2}, 2^{-3}, 2^{-4}, 2^{-5}, 2^{-6}, 2^{-7} zapis 2^{-8}...2^{-15} teraz, aby załadować liczbę tego typu (czyli z przedziału (-1..1)) do rejestru...
w morde niemoge ustawić tego timera w stan przechwytywania -przerwanie ma adres 0x00c? bo niewiem dokładnie (piepszona dokumentacja) -a to przerwanie jest generowane samoczynie po wykryciu zbocza kture uaktywnia przepisanie ??(qur... dokumentacja i hu.... słownik) -jakie bity ustawić w rejestrze...
Myśle, że najlepszym rozwiązaniem dla użytkowników będzie język drabinkowo-podobny zamieniany przez program-kompilator z graficznym GUI na kod C. Napewno nie jest to zadanie proste do zrealizowania i jest pracochłonne, ale łączy w sobie te dwa skrajne przypadki : ucznia/studenta, który w 15...
Nauka "C" na uC to w rzeczy samej nauka uC. (Czasem żartuję, że zacząłem programować w "C" kiedy dowiedziałem się co oznacza void). Z możliwości jakie daje "C" do programowania mikrokontrolerów nie wykorzystuje się na codzień zbyt dużo (przeważnie pętle, warunki i obliczenia). Żeby zaprogramować...
Porzucałem trochę grochem o ścianę i się znudziłem. Jeżeli sam wiesz lepiej jak to działa to po co pytasz ? Jak chcesz wysłać coś w przerwaniu ustawiasz sobie jakiś bufor (nie w programie głównym tylko pozanim) wpisujesz do niego co chcesz wysłać a w przerwaniu odczytujesz z tego bufora,...
Jest sposób aby wykonać ta procedurkę w asemblerze , ale nie wiem ile ona potrwa- a tobie zależy na szybkim wykonaniu obliczenia. Poniżej opisałem jak według mnie mogłoby to działać: Np. A=256 ; B=64 Deklarujemy tablice w której będą procentowe podzialy liczby (25%,50%,75%,100% itd) 1)...
Napisz program, skompiluj i poszukaj wynikowego pliku zawierającego kod w asemblerze (to będzie jeden z nowo powstałych w katalogu z projektem plików, nie pamiętam rozszerzenia). W pliku tym jest też "binarna" wersja programu - wystarczy policzyć bajty. Zobaczysz, co zajmuje mniej miejsca, jeśli...
nwiązaujac do burzliwej dyskusji na temat wymiennika regeneracyjnego chciałem podzielić sie swoimi spostrzeżeniami : zastosowanie "trzeciego" wymiennika nie przynosi wprost żadnego efektu energetycznego bo nie dostarcza on ciepła do GZ. Sens jego zastosowania w moim przypadku polega na tym że...
Mam taki temat projaktu: "Programowanie procesora sygnałowego ADSP-2181 za pomocą asemblera i za pomocą języka C, porównanie efektywności dla wyznaczania modułu liczby zespolonej. Weryfikacja wyników za pomocą symulatora procesora". Czy może mnie ktoś nakierować jak to zrobić. Mam część...
Witam. Jestem dopiero po pierwszych wykładach z układów programowalnych. Niestety nie jestem na kierunku elektronika, tylko informatyka i temat jest przerabiany trochę po łebkach i tylko podstawy. Zainteresowałem się tym trochę i mam trochę pytań: (byłbym wdzięczny, za krótkie odpowiedzi)....
Witam. Zacząłem zabawę z układem atmega 16. Na początek poszedł w ruch bascom i dwa ledy - błyskają co sekundę - tak jak chciałem. Chciałem to samo zrobić w asemblerze i coś mi nie wyszło :( Nie wiem czy dobrze przeliczam częstotliwość to po pierwsze. Po drugie program napisany...
witam widzę że rozwinął się równoległy wątek o kolekorach na elektrodzie. Konstrukcja mi się bardzo podoba i skoro dzieła 6 lat jest dobra. Pisałeś że masz problemy ze wzrostem ciśnienia, w hydraulice w systemach zamkniętych stosuje się naczynia przeponowe (15% objętości całej...
Witam po raz kolejny. Porady jakiej szukam tym razem to bardziej już Bascomowy problem i powiązany z możliwościami ATMegi 8. ATMega ma możliwośc generowania 3 PWMów. OC1A, OC1B i OC2. A moje pytanie może dośc dziwne brzmi czy modulatory PWM zastosowane w AVRach to jest to samo co np...
Cześć BascomAVR któraś z nowszych wersji, zmienne zadeklarowane minimalistycznie, kodu nie mam na tym kompie, żadnych mnożeń, dzieleń, czytam wejścia analogowe ( 5 sztuk ) i porównuję no i te pętelki... Czy Bascom łyknie jakąś bardziej złożoną instrukcję ( wiele warunków ) IF ?,...
Prograsm mierzy czestotliwość zegara wewnętrznego i na tej podstawie wyświetla temperature wody. Mnie zawsze uczono że pomiar to porównanie wartości mierzonej ze wzrocową. A jak u ciebie to wyglada, co u Ciebie jest wzorcem? Układ posiada procedurę samokalibracji Mógłbyś...
W takich przypadkach najlepiej po prostu obejrzeć tworzony listing w asemblerze (u mnie rozszerzenie lss) dla obu przypadków i porównać.
Ja bym jednak polecił koledze naukę asemblera dla AVRów. Ja sam zakupiłem sobie kiedyś taki zestaw uruchomieniowy dla 8051, zrobiłem na nim kilka programów, ale po pewnym czasie doszedłem do wniosku, że ten procek to już dobry kawał historii. Kiedy przeczytałem, co mogą AVRy w porównaniu...
Program napisany jest w asemblerze. Każdorazowo odczekuję na zakończenie konwersji czyli nie jest na sztywno ustawiony czas opóźnienia. Najgorsza jest ta nieliniowość, bo gdyby w całym zakresie zwiększał o stałą wartość to można by dorzucić w programie kalibrację. Dziś szukałem...
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)...
Witam szanownych specjalistów od przetwarzania sygnałów. Potrzebuję do realizacji pewnego projektu zastosować najlepiej niedrogi procesor DSP umożliwiający: - bardzo skuteczne filtrowanie sygnału - pomiary przesunięcia fazy, mnożenie, dzielenie przebiegów - praca z 8 sygnałami jednocześnie...
Witam, 1) kod powinien mieć wcięcia, to nie asembler 2) niestety kurs z tamtej strony ma już ze 2 lata, avr-libc się trochę zmieniło od tamtego czasu. Polecam korzystać z w/w dokumentacji w jęz. angielskim do weryfikacji funkcji itp. 3) jak już pisałem, GIMSK został "przemianowany"...
Freddy -> po tym jak porównałem kod asemblera dla pętli opóźniającej 300ms przez FastAVR (krótszy nieco kod) do kodu wygenerowanego przez MikroPascal (nieco dłuższy) to - jasno widać, iż autor FastAVR'a przyłożył się bardziej do optymalizacji kodu. Z tego co mówisz zapewne nie tylko...
Przeczytałem dokładnie to co napisaliście i nadal nie uzyskałem odpowiedzi. Piszecie bardzo ogólnie i krążycie wokół tematu. Może to wam ułatwi na odpowiedzenie na moje pytanie. Posiadam cartridge'a Super Game Pack III. Jest w nim EPROM 64 KB (512Kb). Dorobiłem sobie przełącznik...
kuba989898 -> no rację masz na pewno co do tego, że trzeba bardzo dokładnie opóźnienia dobrać. Tym bardziej, że zaparłem się na tego pilota jak diabli (nawet pomimo to że na allegro znalazłem go za 24zł - ale już bardziej teraz mi o to chodzi, żeby zrobić to w C niż żeby mieć tanio...
Mój problemik polega na tym że chciałbym zbudować przetwornice DC/AC z wyjściem sinus. Mam wystarczające doświadczenie jeśli chodzi o część wykonawczą, kłopotem jest tylko wygenerowanie sygnału PWM dla kluczy. W linku zamieszczam przykładowy projekcik w którym autorzy niestety nie zamieścili...
Witam, jeszcze raz ja się wypowiem bo temat rzeczywiście rozrasta się jak rzeka a tymczasem moje stwierdzenie z początku tematu staje się coraz bardziej aktualne: "Nie jest tak istotne jak dobry jest kompilator w porównaniu do tego jaki jest programista " też mnie zastanawiają pobudki...
Dociskanie kickstartu i procka nic nie dało (zgodnie z moimi przewidywaniami - bo kickstart raczej działa, skoro po wyłączeniu CD-ROM-u albo "zepsuciu" ROM-u kontrolera CD prosi o dyskietkę, i ewentualnie się z niej bootuje). Napięcia mniej więcej w normie. (-12,20V, 4,97V, 12,20V). Może...
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ć...
witam Przeszukując elektrodę można znaleźć mnóstwo procedurek dotyczących 1-wire na AVR ale niestety w większości pod język C lub bascom. W jednym wątku znalazłem jakieś procedury ale jak ktoś w nim zauważył z błędami. Kolejną procedurkę znalezioną w kursie asm pod avr znalazłem...
PO. : ad 1/ avr'y są ośmiobitowe, ale obsługa zmiennych 16-bitowych jest optymalna. W przypadku średnim obsługa zajmuje 2* więcej czasu: podstawienie pomiędzy rejestrami (2*mov=2 cykle lub w szczególnym przypadku movw=1 cykl), inkrementacja (subi+sbci = 2cykle, odejmowanie wartości ujemnej,...
Bascom jest dla najbardziej początkujących (sam posiadam tą książkę). C jest o wiele lepsze w porównaniu do bascoma więcej programów na nim napiszesz a wbrew pozorom nie jest taki skomplikowany, zato język trzeci Asembler to jest dopiero skomplikowany język jak na pc praktycznie wszystko...
Próbuję przepisać program który kiedyś napisałem w asemblerze na C. Program to prosty woltomierz - pomiar przez przetwornik a/c, następnie porównanie zmierzonego napięcia z pierwszą tablicą 16 bitową w której są umieszczone przedziały napięć a następnie odczytanie z drugiej liczby kroków...