Pętla ma tą drobną wadę, że jeśli w nią wrzucisz jakieś funkcje warunkowe to nigdy nie wiesz, co jaki czas się dokładnie obróci :) takie tam. Przy jednym warunku to jeszcze nic, ale już przy n rozgałęzieniach, policzenie najgorszego możliwego czasu obrócenia pętli staje się utrudnione. Bo jak warunek nie spełniony to sprawa krótka skok, a jak spełniony...
faktycznie nie robie nic. Ten program cały który jest napisany jest zrobiony przeze mnie. Jestem laikiem w assemblerze bo nie mialem tego za duzo. Zrobiłem to tak jak umialem. Nie potrafię pętli robić wec poprosiłem was o pomoc a jak zawsze kazdy na tym forum gada że "lenistwo" czy odzywki ze czeka ktos juz na gotowe.. Ja poprosilem o sam wzór wegług...
Dobry wieczór. Mam wiele pytań dotyczących ASM, jednak zacznijmy od początku. W C występują pętle, jednak w ASM ich nie ma, lub nie mogę sobie sobie z nimi poradzić. Owszem czytam wiele poradników, lecz nie ma tam nic o pętlach, natomiast są skoki, np. skok względny, gdy równe = BREQ skok względny = RJMP Czy faktycznie w ASM pętle nie występują ?
witam ! potrzebuje pomocy z tematem ktory mam do opracowania ale nie mam najbledszego pojecia jak sobie z tym poradzic. pomyslalem ze tutaj znajde napewno kogos kto znalby odpowiedzi na ponizsze pytnia. oto one: 1) Napisz w asemblerze pętlę, w której będzie zmieniany bit 0 portu P1 (P1.0) na przeciwny dokładnie co 4 cykle zegarowe. Ten fragment programu...
Witam! Chcę napisać program wypisujący kilkukrotnie tekst za pomocą pętli. Jeżeli wrzucę pustą pętlę, program kończy działanie, natomiast kiedy wrzucę do niej funkcję read z języka C (muszę jej użyć), program się zapętla. Jakieś pomysły? .686 .model flat extrn _ExitProcess(at)4 : near extrn __write : near public _main ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...
witam Co może być w tym kodzie nie tak?? .MODEL SMALL .DATA ;Segment danych Table DW 100 dup(?) ;Tablica danych .CODE ;Segment kodu ;Na wejściu procedura otrzymuje rejestry SI i BX, które wskazują na cześć tablicy ;poddawaną sumowaniu AddEm PROC lea bx,Table[si+bx];wyznacz w BX adres efektywnego pierwszego słowa xor ax,ax mov cx,20 aloop:...
Witam! Tak jak w temacie, jest mi ogromnie potrzebny taki kod - jak najprostrzy, bardzo bym prosil o szczegolowe opisy poszczegolnych liniejek kodu - cel? ZALICZENIE architektory komputerów. Bede niesamowicie wdzieczny za ten kod. Jest mi to potrzebne juz na sobote ta. Zamykam. - arnoldziq
Witam. Może ktoś mi pomoże napisać funkcje w assemblerze, która po kompilacji i dodaniu jako zewnętrzny plik do projektu będzie działać w avr-gcc. Przykład taki znalazłem na stronie: http://winavr.scienceprog.com/avr-gcc-tu... Niestety w przykładzie tym funkcje nie mają żadnych argumentów, a mi zależy...
Witam Czy pomoże mi ktoś rozwiązać to zadanie. A jeszcze bardziej zależy mi aby mi krok po kroku spróbował opisać co się z czym je:) 1. Jaka będzie zawartość rejestru R0 po wykonaniu programu ( odpowiedź w postali hex) .equ 1234h ld r0, #55555h rol r0 and r0, #maca 2.Jaka będzie zawartość rejestru R3 po wykonaniu programu ( odpowiedź w hex): ld r0,...
Witam, mam takowe 2 programy do napisania. Nie chce pisac głupot w programie, a ze zaczynam sie uczyc tego jezyka nie wszystko do konca umiem. Z góry dzieki za pomoc. Oto pierwszy program: 1) Zapisz dowolne liczby (najlepiej np. z zakresu od 2 do 10) do rejestru R3, R4, R5.Następnie dodaj zapisane rejestry do siebie i wynik zapisz w rejestrze R7 i na...
Witam. Próbuję napisać w asemblerze program, który wyświetla odpowiednią ilość razy dany znak, a potem wyświetlić tę ilość znaków znów ileś tam razy. Czyli pętla w pętli. efektem końcowym ma być ****** * ****** ****** * ****** ****** * ****** napisałem tyle: .model small .386 .data tekst db "petla znakow",0Ah,0Dh,"$" tekst2 db "...
Witam wszystkich. Mam taki program: ; wersja NASM section .text ; początek sekcji kodu. global _start ; linker ld chce mieć ten symbol global$ _start: ; punkt startu programu mov eax, 4 ; numer funkcji ;systemowej: sys_write - zapisz do pliku mov ebx, 1 ; numer pliku, do którego piszemy. ; 1 = stdout = ekran (zazwyczaj) mov ecx, tekst...
Musze napisac komentarze do takiego programu. Może mi ktoś w tym pomoć i to zrobić? *387 CODE SEGMENT ASSUME CS: CODE, DS:CODE ORG 100H; START: MOV AX, CS MOV DS, AX; FILD A; FSIN; FMULST, ST(0); FILD A FCOS; FMULST, ST(O); FADDP FISTPB MOV AX, 4COOH INT21H A DQ 10 B DQ ? CODE ENDS END START
Witam, Gdzieś kiedyś czytałem - ale że dawno (znowu) nie robiłem nic w C to jakoś mi to umknęło - a wiem, że można - hmmm chyba chodzi mi oto aby można było napisać sobie funkcję w asemblerze - a później korzystać z niej AVR GCC wywołując ją z paramertami. Dokładniej mówiąc znalazłem fajną notę AVR304 - to jest software UART, niewiele linijek kodu -...
Mam problem z napisaniem programu na mikrokontroler 8051. Treść programu: Napisz program, który odczyta 50 komórek z pamięci kodu programu od adresu AB10H, pomnoży każdą odczytaną komórkę przez 3, doda bardziej znaczącą część wyniku z mniej znaczącą a następnie zapisze je do pamięci zewnętrznej RAM od adresu 2535H, a ich negację do pamięci wewnętrznej...
"W segmencie D z przesunięciem $3D00 znajduje sie zbiór $4F00 slow - każde słowo składa sie z dwóch bajtów w kodzie U2. Dodaj bajty do siebie a do pierwszego bajtu zapisz wartość bezwzględną wyniku." Mam napisać taki program, a po raz pierwszy mam styczność z Assemblerem. Czy ktoś może mi pomoc? Absolutnie nie mam o tym pojęcia. Z góry dziękuję, Koledzy....
Witam, szukam kogoś kto mógł by mi pomóc po pierwsze sprawdzić czy podany algorytm jest tym którego szukam, a później zrobić z tego program który obliczy mi kod na podstawie algorytmu. Z góry dziękuję za chęci :) Na zdjęciu zaznaczyłem kawałem kodu, i czy ten kod jest odpowiedzialny za obliczanie klucza ? Jeśli tak to skopiowałem (chyba wszystkie wiersze...
Zlecę napisane programu w Assembler w środowisku Keil albo innym bez znaczenia. Opis programu - zrzut pamięci z dwóch procesorów na trzeci procesor.
Witam szanownych użytkowników :) Na zaliczenie mam do napisania program. Jego treść przedstawiam poniżej. Szesnascie kolejnych liczb osmiobitowych (wyniki pomiarow) umieszczono na stosie. Napisac procedure (wywolywana z programu glownego), zdejmujaca te dane ze stosu, obliczajaca ich wartosc srednia, umieszczajaca te wartosc w komorce nr 30h i powracajaca...
Witam wszystkich. Mam problem i to poważny. Potrzebuję kogoś, kto zna się na pisaniu programów w asemblerze. Niżej podaję treści takiego zadania: 1. Napisz program, który oczyszcza ekran, umieszcza wskaźnik w wybranym miejscu, prosi użytkownika o podanie dwóch wartości, dodaje je i wyświetla sumę. Użyj procedur Clrscr,Gotoxy,Writestring,Readint i Writeint...
Witam. Napisałem sortowanie bąbelkowe pod Asemblera, lecz coś w ogóle nie sortuje mógłby ktoś z Was spojrzeć na Niego. Oto jego kod. Tablica - to moja tablica elementów do sortowania n - ilość elementów asm { //------------ edi=i, esi=j // i=0; mov edi, 0h pierwsza: //j=i; mov esi, edi; druga: //if(tablica A to jego wygląd w C++ (przerobiony aby było...
A^{0.2} = A^{\frac {2} { 10}} = \sqrt Potęgowanie to wielokrotne mnożenie (mul, muls, fmul, fmuls) tej samej liczby przez siebie w pętli, przy czym ilość iteracji pętli jest równa potędze minus 1 (dla potęgi równej 1 nic nie robimy... ;) ). Co do pierwiastkowania to przydatna jest reguła pierwiastkowania iteracyjnego Newtona dla \sqrt \rightarrow y_{i+1}...
Ja też taki byłem, do czasu jak zacząłem mierzyć prędkość "obrotu" pętli głównej - wyraźnie widać, że im więcej się tam dokłada, tym wolniej się ona kręci. Jak miałem tylko 8 maszyn stanów to czas obrotu wynosił średnio ok 3us, jak dodałem następne cztery to już wynosi 5-6 us (at) 168MHz F4. W assemblerze to było o tyle optymalne, że do licznika rozkazów...
Dzięki,to już jest coś bardziej zaawansowanego niż do tej pory robiłem. Szkoda,że nie ma zadań do samodzielnego rozwiązania w celu przećwiczenia,ale zawsze coś
ok sorry może się trochę rozszalałem ale denerwują mnie strasznie kolesie szukający tu zaliczeń. Tak więc w asemblerze dobrze jeste przede wszystkim porządnie przygotować sobie strukturę programu: początek: .cseg ; .org 0 ; rjmp RESET ; .org INT0addr ; reti ; .org INT1addr ; reti .org OVF2addr reti .org OVF1addr reti .org OVF0addr ; reti .org URXCaddr...
Zacznij od robienia opóźnień pętlami i w ogóle od obycia się trochę z assemblerem, pomigaj na początek LEDami, a jak już nabierzesz trochę wprawy, to wtedy zabierz się za obsługę liczników / timerów i pozostałych peryferiow. Najlepsi programiści kiedyś od tego zaczynali... Porywanie się na początku za coś bardziej skomplikowanego tylko Cię zniechęci....
No cóż, jak dla mnie to 2 sprawy do przerobienia : 1. Pomiar czasu na Timer0 - jakaś parka bajtów w SRAM, służąca za licznik, który co przerwanie zmniejsza swoją wartość do zera, ale się nie przekręca. Jak chcemy zmierzyć czas, to cli, zapis licznika, sei i już tylko sprawdzamy czy licznik jest wyzerowany, a w międzyczasie program może wyskoczyc do...
W opisie do VDSP++ (dla procków BlackFin) jest napisane jak należy programować w C, aby kompilator wykorzystywał sprzęt DSP. Są tam przykłady jak organizowac pętle, mnożenia itp, a jak tego nie robić. Chociaż moim zdaniem i tak pełną kontrolę daje dopiero assembler.
Widziałem gdzieś tam (chyba w bibliotece peryferyjnej STM32 albo w CMSIS dla STM32), no ale co z nimi? Mój startup robi z grubsza to samo, dodatkowo korzysta z dwóch stosów i jest krótszy (tego typu pętle, nie wiedzieć czemu, zawsze kompilują się do wieeeeeeeelu rozkazów assemblera, choć wystarczy te kilka które jest u mnie). 4\/3!!
Co dokładnie sekundę? Mniej więcej co sekundę? Tą pierwszą opcję trudno bez przerwań zrealizować. Drugą to robisz sobie pętlę która realizuje się w mniej więcej sekundę. Przecież w tytule wyraźnie jest napisane z timerami , po co więc pętla "mniej więcej". Trzeba w głównej pętli sprawdzać stan znacznika timera i podejmować odpowiednie działanie. Szczegóły...
Nie wiem czy to poprawili, ale zmienne przesunięcia nie są za dobrze generowane dla avr. Kompilator robi takie przesunięcie w jakichś magicznych pętlach (zamiast np 1 << 6 robi 6 pętli po 1 << 1). Fajnie jakby ktoś kto się nie boi asemblera to sprawdził bo ja nie mam takiej możliwości chwilowo. Ale nie ma możliwości zrobić inaczej, bo AVR...
Jak dla mnie kod jest bardziej przejrzysty niż jakaś "pajęczyna". CPU wykonuje kod maszynowy instrukcja po instrukcji, w wysokopoziomowym języku programowania kod jest wykonywany linijka po linijce, więc jest to dobra analogia do tego co się dzieje w samym CPU. Jaka pajęczyna? robisz blok po bloku, i je łączysz... W graficznym też pętle są wykonywane...
Witam, problem nie tkwi w programie... Po "t2++;" nie masz żadnej instrukcji więc debugger wraca na początek pętli. Strzałka podczas debugowania pokazuje kolejną instrukcję do wykonania. ...i właśnie dlatego uważam, że naukę powinno się zaczynać od assemblera - żeby zrozumieć istotę działania(choćby przeskoków w tym przykładzie). Możesz włączyć disassember'a...
(at)Freddie - czy pycrc też generuje taki kod dla sumy kontrolnej w takiej postaci jaka jest tu (Modular sum) czy tylko na podstawie jakichś wielomianów CRC, bo to jest chyba różnica. Hmm, no może faktycznie - pycrc służy oczywiście do generowania kodu liczącego CRC, trochę się pospieszyłem bo tutaj widzę jest liczenie zwyczajnych sum a nie CRC - zmyliło...
Witam, zmagam się z napisaniem programu, który będzie sterował motorem za pomocą klawiatury, cyfry odpowiadają liczbie obrotów, zaś gwiazdka i krzyżyk za kierunek obrotów. Wyobrażam sobie napisanie tego porogramu w nastepujący sposób. Pierwsza część programu wyszukuje, czy któryś z klawiszy został wciśniety, druga część to pętla, w której jeżeli gwiazdka...
Może nie stricte z tematem, ale miałem podobną sytuację na początku swojej zabawy z mikrokontrolerami. Pisałem programy w bascomie na 51 i na Avr i dla przyśpieszenia działania robiłem wstawki w asm. Po pewnym czasie moje programy wyglądały tak [syntax=c] $ASM Kod programu $ENDASM [/syntax] Wtedy doszedłem do wniosku że używanie bascoma nie ma sensu...
-Os to optymalizacja na rozmiar i sugeruję ci tak zostawić. Zrozum, że kompilator zrobił dobrze, tylko ty napisałeś zły program... Skoro twoje zmienne nie są dalej używane, to są zbędne = zostają usunięte. Skoro warunek pętli - jakakolwiek by nie była wartość x - będzie spełniony tylko i wyłącznie RAZ, to nie ma potrzeby robić do tego pętli, tylko instrukcje...
Używając etykiet w .eseg nie zastanawiasz się nad fizycznymi adresami, robi to za ciebie kompilator. Tym niemniej aby operować na tych danych należy oczywiście użyć "okienka podawczo - odbiorczego" w EEDR, zgodnie z notą katalogową ( http://www.atmel.com/dyn/resources/prod_... ). Wszystko z .eseg ląduje w pliku .eep, którym możesz za...
Witam kolegów. Chciałbym, żeby ktoś pomógł mi zrozumieć skąd się bierze i ile jest cykli podczas wysyłania/odbierania jednego bajtu przez SPI? Z tego co zrozumiałem to przy podzielniku SPI / 2, dla 8MHz, powinienem móc wysłać trochę poniżej 500kB/s. Zegar SPI ustawiłem na Fcpu / 2. Robię: [syntax=c]SPDR = 0; while(!SPSR & (1<<SPIF)); [/syntax]...
40-50 MHz? Mój komentarz -> (; Może 10MHz wyciągniesz, jak TYLKO to będziesz robił w głównej pętli bez żadnych przerwań. Na dzień dobry odczyt + zapis to niby tylko dwie instrukcje, tyle że jedna z nich niekoniecznie pójdzie z pełną prędkością (wolna magistrala APB na której są porty), potem inkrementacja, skok do początku - pewnie z 7 cykli zegara...
Witam. Mam taki problemik. Dwa silniki krokowe są napędem ploterka XY i załóżmy, że 1 krok to 1mm i jesteśmy w punkcie 0,0 a musimy pojechać po prostej do punktu XY [mm]. I teraz jak powinien wyglądać algorytm jazdy - wcześniej to robiłem w komputerze w delphi i tam sobie wymyśliłem algorytm ale on wymagał sporej dokładności liczb (wielobajtowych) i...
org 0h start: ;wlasciwy poczatek programu ; mov a,#1 ; mov b,#0ffh acall polskie acall lcd_clear main_loop: acall lcd_init ;inicjacja wyswietlacza acall powitanie ajmp main_loop ;skacz do poczatku polskie: Coś mi tu nie gra! Najpierw robisz lcd_init, potem powitanie, a potem znów init ... i tak w kółko! Inicjalizację lcd zrób tylko raz - najlepiej...
Jak sama nazwa wskazuje możesz zdjąć to, co ostatnio odłożyłeś... Widzisz, jakbyś chciał się nauczyć assemblera tobyś wiedział dokładnie co się z czym dzieje... Adres wierzchołka stosu siedzi we wskaźniku stosu - (rejestry SPH:SPL) i wskazuje na puste miejsce, czyli jest zwiększany po odłożeniu elementu. Dlatego "ręczne" zdjęcie danej ze stosu wymaga:...
Właściwie to potrzebujesz automat z pewną sekwencją bitów, która będzie się przesuwała w rejestrze a jego wartość bedzie kopiowana do portu. Najpierw ustal sobie sekwencję załączeń kolejnych cewek zależnie od kierunku obrotów. Wyjdzie Ci z tego tabelka, w której zauważysz wędrujące jedynki. np. 001001001 010010010 100100100 itd. Jeśli zapętlisz sobie...
Z wykorzystaniem języka assembler można zredukować niezbędną liczbę cykli zegara do 7, co spowoduje zwiększenie liczby próbek do 15 przy 150 kHz. Nie jest to zbyt wiele, ale różnica w wyglądzie przebiegu jest wyraźna. W jednym z projektów generowałem przebieg sinusoidalny z wykorzystaniem drabinki R-2R i ATTiny 2313. Udało mi się zejść do generowania...
Kolego, najwyraźniej nie wiesz ani o co pytasz, ani jak daleko jesteś od celu :) Ale to do wybaczenia, skoro się dopiero uczysz. Zacznijmy od tego że nie ma tak jednoznacznego pojęcia jak "programowanie robotów". Co w ogóle masz na myśli mówiąc "robot"? Zabawka z Lego Mindstorm? Piesek Aibo? Spawarka przemysłowa? Bezzałogowy Predator? To wszystko są...
Sprawa jest prosta (?). Albo masz walnięty kompilator (nie znam dokładnie tego kompilatora ale możesz zapewne uzyskać wynik kompilacji w assemblerze, obejrzyj co robi kod odpowiadający za inkrementacje zmiennej) Albo inne operacje w ramach tej funkcji (te których nie pokazałeś) smarują tobie po stosie (jakieś operacje na wskaźnikach albo błędne rzutowania...
Faktycznie, taki zegarek akurat do domu nie bardzo się nadaje :) A co do reszty to: 1) Programuje praktycznie tylko w C/C++, a to dlatego, że jak się ma jednocześnie do czynienia z 4 rodzinami procesorów to już trudno assembler spamiętać (szczególnie w przypadku ARM'ów) :) Do AVR'ów używam WIN-AVR opartego na GCC. 2) W tym przypadku pomiar temperatury...
Jak wyliczyć (Wykonać) dokładnie opóźnienie np. 500ms Nie chcę tego robić na timerze ! Chodzi mi o to jak wyznaczyć taką liczbę cykli procesora które zajmie pętla for tak aby wykonała się dokładnie w 500ms Do dokładnego odmierzania czasu służą timery. Jeżeli nie chcesz, to masz złe podejście. Nie chodzi mi o czysty assembler tylko o wykonywanie pętli...
Dziękuje za pomoc.. W klasie zrobiliśmy ten program troche inaczej ale ten działa lepiej.. w naszym trzeba było robić pętle, wpisywać ile znaków ma tekst.. A mam jeszcze jedno pytanie. chce sobie zrobić licznik BPM (Beats per minuts) Licznik mierzący ilość zliczanych impulsów w ciągu minuty tylko ze wynik ma być wyświetlany odrazu tzn. myslałem nad...
Musze napisać program (opisać go komentarzami, napisać schemat blokowy a także pokazać co robi ten program) Prosze o pomoc! Z góry dziekuję! Treść projektu: Napisać program zliczający zapalone bity na portach A i B i wyprowadzający liczbę zapalonych bitów zakodowaną w formacie BCD na port C kolega z grupy wysłał mi ten program co robiliśmy na zajęciach...
Hehe, nie wiem co to jest volatile :) Programuję w bascom i na razie spełnia w 99% moje oczekiwania chociaż robię przymiarki do assemblera... Przychodzi mi do głowy jeszcze jedna rzecz związana z gubieniem impulsów. Piszesz, że badanie robisz przy każdym zboczu dla zwiększenia rozdzielczości (nawet sam tak miałem na początku w sowim projekcie pozycjonera)...
No to po kolei: [syntax=x86asm] .MODEL SMALL Dane SEG DL_TABLICA EQU 15 Tablica DB 01h, 02h, 00h, 10h, 12h, 33h DB 15h, 09h, 11h, 08h, 0Ah, 00h Dane ENDS Najwieksza DB ? W jakim to będzie segmencie? Proponuję w Dane. Kod SEGM ASSUME CS:Dane, DS:Kod, SS:Stos Nie ma segmentu Stos Start: mov ax, OFSET Stos Po co to? mov ds, bx Co ładujesz do DS mov al,...
Uważam, że moderator ... Działania moderatorskie wykonuję na czerwono za pomocą odpowiednich funkcjonalności. Niestety raz się zdarzyło że na czerwono wyciąłeś tekst o "niewygodnym" środowisku programistycznym :D Ale nie o tym będę pisał. Napiszę jak to wyglądało u mnie. Ja zaczynałem od BASCOMa. I to BASCOMa '51. Były artykuły w EdW. Nie miałem jeszcze...
memcpy nie ma prawa blokować jakiegokolwiek timera. To jest zwykła funkcja biblioteczna, i na pewno nie sprawdza ktory akurat timer masz włączony i również nie ma kodu aby go wyłączyć. Memcpy jest najpewniej napisany w assemblerze i został odpowiednio zoptymalizowany. Kopiowanie duzej tablicy bajtów w pętli spowoduje kopiowanie się bajtu po bajcie,...
A to akurat wiem. Multipleksowanie już robiłem wcześniej przy projekcie metronomu, ale wtedy pisałem w C i nie było problemów. A teraz nie wiem jak się zabrać za samo ustawienie odpowiednich poziomów na port 1. Wcześniej poprostu miałem zwykłą tablice cyfry[9] po której się poruszałem. A teraz nie do końca pewnie czuje się w tym assemblerze. Zdaje,...
(at) JacekCz Jak tak się mądrzysz i peszysz to wstaw lepszą wersję CPP i Assembler ;] Ja się nie peszę (bo tak słowa użyłeś). Kryształowa kula i Pierwotny Pytający milczy, jaki assembler jest oczekiwany w szkole Pytającego. Cros kompilacja z C/CPP -> ASM jest totalnie bez sensu ze wszystkich względów (dydaktycznych, technicznych itd). Ostatni prawdziwy...
Zamiłowanie do zbędnych optymalizacji, wstręt do liczb zmiennoprzecinkowych i inne cudowne-cuda których nie ma sensu robić na takich układach. Schematy tworzenia oprogramowania ("RTOS na pewno jest zbyt ciężki, zrobimy wiec pętlę główną!", "Nie, C++ na pewno zajmie zbyt dużo..." oraz "Najlepiej napisać to w assemblerze" [; ). Nie zaprzeczysz, że inaczej...
Owszem zaproponowałem autorowi pomoc na pw już dwa razy ale nawet nie raczył odpisać :) A co do wytykania błędów jeśli ktoś chce korepetycje i dowie się że avr studio to tylko symulator, i że assemblera nie trzeba znać... to sorry... Jak nie wytykać takich rzeczy... ( o tym C++) nie wspomnę... Nie znając asma nie wiemy co tak na prawdę robi GCC, a czasem...
(at)p.kaczmarek2 , to: [syntax=cpp]b<0?-b:b[/syntax] nigdy nie będzie szybsze od abs() lub fabs() przynajmniej na x86 bo masz warunek zamiast jednej instrukcji assemblera. Natomiast: [syntax=cpp]((b >> sizeof(int) * 8 - 1)+mask)^mask[/syntax]: na 100% będzie wolniejsze (zdecydowanie zbyt dużo operacji) no i przestanie działać przy LittleEndian...
Muszę zrobić programowego mastera SPI, Fmax 18MHz. Nie mogę ustawić portów na wolniejsze taktowanie, bo mam na nich kartę ethernetową (zestaw ZL26ARM) i z ARM jest taktowana karta (50MHz). Transmitowane będzie po kilkanaście, kilkaset bajtów co ok 100ms. No ale tak krótkich czasów - dla zegara 18 MHz - przecież nie odliczysz inaczej niż najbardziej...
Obawiam się, że chcesz się utopić. Tak, utopić. Najpierw jedno, potem drugie a potem dalsze. Jak chcesz programować uC to zacznij programować uC. Nie trzeba programotora. Trzeba mnóstwo cierpliwości, czytania, pdsłuchiwania co inni mówią (specjaliści). Są symulatory, są książki i wierz mi że teoria w tym zakresie jest tak ważna, że nawet tego nie przypuszczasz....
wsadzanie czesci kodu w pętle chyba wynoszenie poza pętle optymalizacja algortymów cokolwiek by to znaczyło. bascom jako język jest bardzo prosty i łatwy w zrozumieniu, bardziej niż C czy asembler :?: It is practically impossible to teach good programming style to students that have had prior exposure to BASIC: as potential programmers they are mentally...
Może takie makro się też przyjmie. ; D ecrement, J ump if N o Z ero ; DJNZ licznik,etykieta pętli .MACRO DJNZ DEC (at)0 BRNE (at)1 .ENDM Czy komuś to coś przypomina? Mnie to przypomina stronę 45 książki Arkadiusz Krysiaka Programowanie mikrokontrolerów rodziny AVR część 1. Ja też piszę wyłącznie w assemblerze (jakoś nie mogę się zmusić do nauki C na...
Przerwania podstawowe muszą być z częstotliwością 4*minimalna częstotliwość wyświetlania pojedyńczej cyfry. Spróbuj np. przerwania o częstotliwości 100 Hz. Co przerwanie wyświetlasz kolejną cyfrę. Co 100 przerwań zwiększasz stan zegara o 1 sekundę. Modyfikację czasu robisz po pełnym cyklu wyświetlania (4 cyfry). To co ci podałem to zasada działania...
JTAG'a brak czyli zostaje mi tylko symulacja Przykładowy kod programu z lewej zaznaczone dokąd dochodzi mi żółta strzałka #define F_CPU 16000000 #include <avr/io.h> #include <util/delay.h> #include <HD44780.h> #include <HD44780.c> //====Sterowanie serwem modelarskim===================== #define C4_0 PORTA &= ~(1<<PORTA4)...
Mnie tam sysutils.time() bardziej przypomina Delphi niż TP, ale nie chcę się kłócić :P Wiele lat temu, w TP7.0 robiło się takie rzeczy w taki sposób :[syntax=pascal]program minutnik; uses WinDos,CRT; var czas,zostalo, alarm : TDateTime; zakoncz : boolean; czas_i,alarm_i,zostalo_i : longint; zmm_word : word; procedure HideCursor; assembler; //kosmetyka...
A..no widzisz - teraz to nabiera sensu Czyli musi być jakieś przerwanie, które z dużo większą szybkością cyklicznie sprawdza stan tych wszystkich zdarzeń (semafory, mutexy,itd...) - i w razie wykrycia zmiany wyzwala odp. akcję. Nie ma żadnego dodatkowego przerwania... Przecież to się opiera na zwyczajnym mechanizmie zdarzeń - żaden z obiektów synchronizacyjnych...
double func( double A Hmm.. A jak 64-bitowa liczba double została zmieszczona w czterech 8-bitowych rejestrach? Magia się dzieje :) A co do pisania w ASM, moje zdanie jest takie, że dzisiejsze kompilatory są na tyle dobre, że przy włączonej optymalizacji naprawdę trudno jest samemu napisać lepszy kod. Oczywiście, tam gdzie jest potrzebna większa kontrola...
robienie bruzd robienie zdjęc robienie prostownika
podłączenie laptopa telewizorem samsung pilarki łańcuchowe usbasp sterownik
bateria milwaukee elektryczne ogrzewanie podłogowe
16 ogniw LiFePO4 EVE 280Ah szeregowo – magazyn energii 51,2V niskonapięciowy czy wysokonapięciowy? Citroën Xsara Picasso 2.0 HDi – brak reakcji na pedał gazu, czujnik APP, diagnostyka, naprawa