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...
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ś
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ę.
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...
Zresztą - jak jest za wolno, to wystarczy pętlę rozwinąć, myślę że wtedy można zaoszczędzić sporo, a 8x ten sam kod (skrócony o rzeczy związane z pętlą) i tak nie zajmie zbyt dużo. -O3 tak robi. Wynik 140/190 Dodano po 2 Czekam na wersję w assemblerze której prędkość sprawi że nam buty z nóg pospadają (; Tu musiałby się wypowiedzieć specjalista (at)kamyczek...
(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...
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...
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...
Co to tych linii w SDRAM to racja, i przerzucam się na mniejsze kombinowanie teraz. ;p Ale zauważ że wielu rzeczy nie przewidzę, nie przewidzi ich także wielu zaawansowanych elektroników, a i tak się ujawnią i zniwelują poprzednie oszczędności. Z tym brakiem możliwości poprawienia kodu przez zleceniodawcę to właśnie o to mi chodzi. Jak chcą poprawiać...
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...
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...
Nadal nie wie co jest podpiete do P1.6, a dokładnie co robi CLR SEG_ON ? Do tego portu podpięty jest wyświetlacz, CLR SEG_ON służy do zerowania bitu w tym porcie. Witam. Przepraszam że nie było mnie tyle - brak czasu:( chodzi o wyświetlenie pięciocyfrowego numeru i wygaszenie go po powiedzmy 9 sekundach. Wyświetlanie cyfr ma być organizowane przez...
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...
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...
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,...
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...
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...
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...
Ja ostatnio miałem problem z zapisem do pliku TXT. Co minutę były zapisywane parametry takie jak temperatura, wilgotność itp. A w międzyczasie podcinało sobie przerwanie od Timera2. Wywoływane ze 100 razy na sekundę robiło programowego PWMa na pinie PortA.2 czy jakimś takim. I to za pomocą sbi/cbi a nie operacji In/Out więc to na pewno nie robiło problemu....
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,...
Skoro mówię, że lokalne, to lokalne. Wyobraź to sobie na przykładzie kieszeni i plecaka. To z czego prawdopodobnie skorzystasz za chwilę (klucze, dokumenty, portfel) masz w kieszeni. To z czego korzystasz rzadziej (pompka do roweru, zapasowe koło, śpiwór itd.) masz w plecaku. Teraz jak musisz zapłacić w sklepie to po prostu wyciągasz portfel z kieszeni...
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....
Przy dłuższych liczbach bardziej opłaca się użyć agorytmu z przesuwaniem i dodawaniem a działa on tak (4 bajty x 4 bajty, wynik 8 bajtów): Przygotuj 8 bajtowy rejestr komórek w pamięci na wynik, w postaci: |Mnozna|00000000h| Gdzie 4 starsze bajty to mnożna a cztery młodsze to zera. Teraz wykonujesz pętlę 32 razy (4 bajty) Przesuwasz 8 bajtowy wynik...
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....
Problem jest taki że sprzętowe bramki są szybkie i działają jednocześnie, symulowane na mikrokontrolerze muszą być wykonywane sekwencyjne i z konieczności będą nieoptymalne bo ich działanie różni się od sposobu realizacji na mikrokontrolerze. Gdybyś proponował wrzucenie tego do FPGA miało by to więcej sensu, a mimo to jakoś liczba programistów mikrokontrolerów...
Dziwny jest ten licznik oglnie mój działa podobnie. ASM na 51 a na AVRy się sporo różni dużo zapomniałem bo 5 lat temu miałem ASMa na 51. Zapodam ci fragment kodu ASM AVR. .equ licznik=r16 .equ jednosci = r17 .equ dziesiatki = r18 .equ temp = r19 ldi licznik,99 ladalsuj do rejestru R16 wartość 99 loop: (mov R0,#99 będzie u ciebie) teraz musimy to wyświetlić...
Witam. Widze, ze wielu fachowcow juz sie podejmowalo tlumaczenia, ale jakos bez rezultatu. Po wciśnięciu jednego z przycisków, uC ma "wpadać" w nieskończoną pętlę. ... chciałbym zmieniać tryb pracy mojego uC bez względu w jaką pętlę wpadł ... ... Dwa switche będą wykonywały dwie różne od siebie nieskończone pętle, które będą trwały do momentu odłączenia...
Nie wiem po co każdą instrukcję ldr Twój program wykonuje warunkowo. To akurat jest oczywiste. Procesor bierze to, co jest. Taki ma program, to taki wykonuje ;p Powinieneś raczej zapytać dlaczego napisałem taki program ;p Otóż nie wiedziałem co robi instrukcja ldrlo. W opisie instrukcji ldr nie było nic o zwiększaniu rejestru wskaźnikowego. Myślałem...
Na wstępie powiem że ogólnie to jestem głównie linuksowcem. Z mikrokontrolerów robiłem jedynie jeden projekt w Arduino z wykorzystaniem czujki DHT11 i bezprzewodowego wł/wył na 433MHz. "Surowego" portu szeregowego jeszcze nie wykorzystywałem. Mam styczność jedynie z prostymi programatorami na USB które wykorzystuje do debugowania routerów (pisze paczki...
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.
Nie. Pojedyncza instrukcja w kodzie maszynowym często dzieli się na jeszcze mniejsze - bo trzeba np. pobrać rozkaz, zdekodować go, wykonać, itd. Dlatego rozkazy różnią się czasem wykonania. Niektóre trwają jeden cykl, a inne nawet kilkadziesiąt. Heh... Mogłem zacząć od assemblera choć wiem że to wyższa szkoła jazdy, teraz mam wiele nieścisłości w temacie....
No i właśnie, teraz postaram się zaargumentować dlaczego tak sądzę. No bo popatrzcie, wszyscy się cieszą że RTOS taki super, bo mamy wywłaszczenia, i się przerywają wątki i w ogóle możemy upakować procesy a scheduler sam się zajmie tym co i kiedy wywołać. Tylko kurczę, przecież normalnie też możemy sobie takie coś zrobić ustawiając np. dla timerów...
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!!
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...
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...
https://obrazki.elektroda.pl/6687159300_... Każdy, kto rozważa przesiadkę z ośmiobitowego mikrokontrolera na coś mocniejszego i o większych możliwościach naraża się na pewien problem, który łatwo przegapić, bo przy ośmiu bitach pojawia się sporadycznie. Ale pomnóżmy liczbę bitów przez dwa, cztery, albo i osiem, i zaczynają się schody....
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...
https://obrazki.elektroda.pl/8661538600_... Zainspirowany podcastami o historii komputerów (podcast #19 - Słowo o architekturze i słowniczek pojęć By lepiej zrozumieć zagadnienie pamięci, musimy najpierw poznać architekturę, a dokładniej to części składowe procesora. Nie będziemy zagłębiać się w tajniki najnowszych Ryzenów czy i9,...
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...
-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...
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:...
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...
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...
Albo nie czytasz tego co piszę, albo nie rozumiesz co piszę, bo robisz dalej te błędy na które zwróciłem Ci uwagę :| Po co dwie etykiety jedna pod drugą (loop i L1)? Nadal nie sprawdzasz jak opcja z menu została podana itd. Chcesz już pisać porównywanie ciągów? Wątpię czy dasz radę (choć jak najbardziej życzę powodzenia) skoro nie udało Ci się uporać...
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]...
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...
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)...
Obsługa przerwania zajmuje z 70 cykli (odłożenie rejestrów na stos i zdjęcie ich ze stosu). Do tego z 10 cykli na wpisanie wartości do Timera i z 10 na ztogglowanie pinu. Razem 80 cykli. 8000000Hz / 80 = 100kHz. Jako że dajesz Toggle to będziesz miał dwukrotnie mniejszą częstotliwość. Czyli max uzyskasz 50kHz. Skoro masz 32kHz to pewnie przez to że...
Witam po dłuższej przerwie, mam do Was prośbę o optymalizację kodu Assemblera... Napisałem program w C i ASM liczący silnię z 5, 10000000 razy, tak abym mógł porównać czas. okazuje się że program napisany w C wykonuje się 5 sekund z pozytywnym wynikiem natomiast program w ASM wykonuje się aż 27 sekund również z pozytywnym wynikiem. Poniżej zamieszczam...
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...
Wy się kłócicie o C, a sprawa jest jasna: - programuję AVR w ASM. Atmega8 ma 130 instrukcji z czego 24 to skoki warunkowe, 31 to załadowanie/wyładowanie bajtu z rejestru, a reszta to zwykłe pierdoły typu dodaj, odejmij itp. Mimo że assembler wygląda na trudny to człowiek o inteligencji tresowanej małpy jest w stanie w ciągu 2 tyg załapać podstawy i...
Nawet gdyby same porty GPIO się wyrobiły, to nie wyrobi się cała reszta. Skoro chcesz wykonywać odczyt z częstotliwością 40MHz, to masz mniej więcej 4 takty zegara na wykonanie wszystkiego. W super-extremalnym przypadku pętla która by to realizowała ma 4 rozkazy assemblera: 1. odczyt GPIO do rejestru 2. zapis z rejestru do RAM z postinkrementacją wskaźnika...
Jeśli masz narzędzia czyli kompilator i programator, to jest to do zrobienia na 89S8252. Nie widzę racjonalnego powodu do wymiany kostki na inny typ (jak tu niektórzy proponują). Mam nawet pewien sentyment do tej kostki, bo swego czasu robiłem na niej duży projekt. Tyle że C okazał się zbyt rozrzutny jak chodzi o zużycie pamięci, tak że od pewnego momentu...
Absolutnie nie mam pojęcia co chcesz zrobić. Program który wstawiłeś jest kiepski: 1) Nie baw się w takie skomplikowane ładowanie danych ldi r17, 1<<CS02 out TCCR0, r17 in r16, TIMSK //tryb normalny sbr r16, 1<<TOIE0 out TIMSK, r16 //przerwanie od przepełnienia Tylko zrób to na brutala, bo tutaj niczym to nie grozi: ldi r16, (1<<TOIE0)...
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)...
.S. Osobiście debugguję tylko zoptymalizowane programy, nie wiem po co miałbym tracić czas na debuggowanie takich z wyłączoną optymalizacją. A ja wręcz przeciwnie, staram sie debugować programy bez optymalizacji. Dlaczego? Ano dlatego, że optymalizacja robi sieczkę z kodem i to jak wyglądają kolejne kroki ma się nijak do pokazanego kodu programu. Utrudnia...
Cieszę się, że osiągnąłeś zamierzony cel, a że "po swojemu" to tylko plus bo znaczy, że sam kombinujesz, a to najważniejsze. Niestety muszę Cię zmartwić, ale robisz bardzo podstawowy błąd, polegający na zapętleniu się w przerwaniu w pętli: while(bit_is_set(ADCSRA,ADSC)); Rozważ hipotetyczny (aczkolwiek możliwy) przypadek, że pętla ta nigdy nie zostanie...
kedz1 -> po co wsadzasz wciąż kij w mrowisko - i stoisz na stanowisku (sorry ale tak jak byś miał troszkę klapki na oczach) że z kolei tylko C - a asembler do lamusa. Pewnie, że masz wiele racji w tym co mówisz tak jak piszą inni zresztą słusznie, iż wygodniej jest pisać w C a gdy trzeba to sięga się do asemblera. najdziwniejsze jest to twoje stwierdzenie:...
https://obrazki.elektroda.pl/9151185000_... Druga część artykułu o najtańszych nowych mikrokontrolerach z roku 2017. Ekosystem developerski Środowisko developerskie mikrokontrolera ma ogromny wpływ na jakość pracy z nim i w konsekwencji - na produktywność. Na to składają się różne czynniki – jakość IDE, dostępne biblioteki, płytki...
---- Building project: zadanie_25.ncp ---- Building file... : C:\Documents and Settings\Piter\Pulpit\u_kontrolery\u_kon... C51ASM: advanced C51 macro assembler Version 1.0 (01 Sept. 2009) Copyright (C) 2009 Atmel Corp. Pass 1 completed with no warnings and no errors Pass 2 completed with no warnings and no errors Segment...
Pokaż jak wygląda całe przeliczenie, może da się jeszcze coś wymyślić. Teraz wygląda tak (wersja robocza): Trzeba tak dobierać mnożniki żeby dzielniki były potęgą dwójki. Czyli w tym przypadku zwiększyć dzielnik ze 100 na 128, i tle samo razy zwiększyć mnożnik, czyli ze 127 na 163: uint32_t newsample = (volume_coefficient *newbuffer Tutaj chyba nie...
Karta SD pracuje w trybie MMC 4-bitowym, można spokojnie na takiej częstotliwości ją puszczać. Co daje 950000 (1'900'000/2) danych po 4bity do przesłania z karty do uC. Teoretycznie zapas kilkanaście instrukcji assemblera na wykonanie czegoś tam. Ramu starczy, żeby buforować jedną linię, 320*8=2560 bitów (albo 320*16 jak to woli). Jak dla mnie realne,...
Ze względu np. na to (przepraszam za brak kolorowania składni): Ja aktualnie uzyskuję podobny efekt za pomocą makr - definiowanych np. dla różnych rodzin procesorów, ale funkcjonalnie będących swoimi odpowiednikami. O ile rzecz jasna jest to możliwe (bo w jednej rodzinie procesorów jest obecne peryferium X, a w drugiej nie ma). Można to nazwać Makro...
https://obrazki.elektroda.pl/5009750700_... Witajcie moi drodzy Oto druga część mojego praktycznego tutoriala dla ośmiobitowego mikrokontrolera PIC18F2550 od Microchipa i programatora SDCC . W tym temacie omówię podstawowe operacje cyfrowego IO na prostych przykładach. Spis części (osobnych tematów) tutoriala Tutorial podzielony jest...
http://obrazki.elektroda.pl/3234430100_1... W Wyszukiwanie, zbieranie i analizowanie otwartych komponentów systemu Najpierw zacznijmy od wyjaśnienia co to jest oprogramowanie otwarte czy też dostępne na licencji GPL (trochę teorii). Narzędzia wykorzystane w routerze, takie jak Linux, U-Boot i inne dostępne są na licencji GPL, co oznacza...
Przepraszam, rzeczywiście podałem zbyt skromny opis mojego problemu. Forumowicze, którzy spotkali się już z moimi postami wcześniej mogli zauważyć, że próbuję stworzyć sieć z mikrokontrolerów realizujących obliczenia równoległe algorytmami genetycznymi i dla prostych aplikacji AG już to zrobiłem (9 procków, kwarc 12MHz, PLL(5,2) MAM(2,4)). Monitoruję...
Dzięki za podpowiedź. Będę mógł sprawdzić dopiero pod koniec tygodnia. Niestety dopiero teraz, jak "mam mokro w gaciach" wczytałem się w datasheet i wyględa na to, że zupełnie niepotrzebnie kombinowałem, bo miałem ustawione wszystko jak należy. Mam jeszcze jedno pytanie, ale dotyczy ono raczej assemblera i 1wire. Każdy, kto dłubie w asm, zostaje zmuszony...
Witam Moja płytka to LPC1769 LPCXpresso board. Używam LpcXpresso do programowania ze względu na to, że na płytce jest LPC-Link. Napisałem już część programu który działa. Program steruje silnikami krokowymi. Pierwszy etap to 2 silniki, każdy ma zrobić różną ilość kroków w tym samym czasie z przyspieszaniem i zwalnianiem. To już działa. W związku z tym,...
https://obrazki.elektroda.pl/3928983600_... Opiszę naprawę dość rzadkiej konsoli, polegającą na odtworzeniu schematu pierwowzoru, zaprojektowaniu i wykonaniu płyty głównej i dalszych krokach niezbędnych do przywrócenia jej życia i funkcjonalności, w których zastosowałem swoją nowatorską metodę. Będzie więc coś dla miłośników retro,...
Witajcie! Robię bibliotekę mającą w zamyśle być modułem do I2C slave, z użyciem atmegi 128A. Wyizolowałem najmniejszą możliwą część błędu który doświadczyłem, może ktoś z Was będzie miał pomysł co może być przyczyną. Żebyśmy wiedzieli o czym dyskusja, kod programu: avr-g++ -O0 -std=gnu++1y -Wall -Wextra -Winline -mmcu=atmega128a Testowałem również z...
https://obrazki.elektroda.pl/3029878300_... Witajcie moi drodzy Oto trzecia część mojego praktycznego tutoriala dla ośmiobitowego mikrokontrolera PIC18F2550 od Microchipa i programatora SDCC . W tym temacie najpierw krótko omówię różne konfiguracje oscylatora PIC18F2550 - oscylator wewnętrzny (internal oscillator), zewnętrzny (zegarowy...
https://obrazki.elektroda.pl/4950580000_... Witajcie moi drodzy W tym temacie poznamy podstawy przerwań i timerów w PIC18F2550 . Na początek będzie krótki wstęp teoretyczny, a potem wszystko przerobimy dokładnie na praktycznych przykładach. Do lektury tematu przyda się ogólna wiedza na temat przerwań i programowania w C, choćby taka...
robienie bruzd robienie zdjęc robienie prostownika
bridge vectra kluczyk passat przycisk otwierać discman wyłącza
zderzak naprawa zderzak naprawa
Schemat elektryczny nadmuchu powietrza w kabinie Kod błędu C14 A3 w kserokopiarce Dialta Di151 - jak naprawić?