Nie napisałeś w jakim formacie masz ramkę. Zakładam, że RGB565. Jeśli tak, to na początek niepoprawnie rezerwujesz miejsce na taką ramkę. W RGB565 1 piksel obrazu zajmuje 2 bajty(jak sama nazwa wskazuje). Czyli na przykład aby odebrać ramkę o rozdzielczości 160x120 potrzebujesz 160x120x2 = 38400 bajtów, dla 320x240 to już jest 153600 bajtów. I tak dalej....
https://obrazki.elektroda.pl/7186671300_... Od kilku lat programuję 8-bitowe mikrokontrolery AVR i przez ten czas zdobyłem trochę wiedzy na ich temat. Poniżej znajduje się kilka ciekawostek o tych układach. Jeśli znacie jakieś inne interesujące informacje, to piszcie. Najnowsza wersja artykułu jest również dostępna na mojej stronie:...
http://obrazki.elektroda.pl/4029783300_1... 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...
Witam, chciałbym przedstawić konstrukcje wyświetlacza 32x48 realizowanego w wolnych chwilach. Na samym początku co nieco o urządzeniu od strony konstrukcyjnej. Wyświetlacz zbudowany jest z 6 matryc o wymiarach 16x16 złożonych z diód adresowanych WS2812B. Matryce nabyte zostały na znanym portalu aukcyjnym i przywędrowały do mnie z chin. Matryce połączone...
http://obrazki.elektroda.pl/9589280700_1... HPS 2014 Hybrydowy laboratoryjny zasilacz sieciowy. Parametry użytkowe zasilacza w skrócie: 1. Wykorzystanie tanich i łatwo dostępnych elementów. 2. Wydajność prądowa min 3A (dla niskich napięć może dochodzić do 5A). 3. Rozdzielczość DAC 12bit. (filtrowany PWM 4.9kHz) 4. Rozdzielczość ADC...
https://obrazki.elektroda.pl/7048158500_... W zasadzie nie wiem jaki tytuł dać ;) Jest to uniwersalny moduł (bufor) a częściowo dedykowany ze względu na dostęp sekwencyjno-blokowy. - obsługuje pamięci SRAM w obudowie dip 28 - umożliwia 4 lub 8 bitowy dostęp - podział na bloki 256 lub 512 bajtowe - sekwencyjny dostęp - konfigurowalny...
A ja już chyba wiem co jest nie tak. Prawie mi się udało rozkodować obrazek. EDIT. Jednak nie tak prosto jest. Kolorów mi się nie udało zdekodować. Nie mniej jednak jestem na 99% pewny o co tutaj chodzi. Te pierwsze obrazki (8bitowe, co miały po 76kB), po "małej" (4 godziny konwertowania :D) zabawie z danymi wskazują że to jest format YCbCr. Bardzo...
Mam mały problem z DMA podczas pracy z DCMI. nowydamian-a . Zwiększa wskaźnik na bufor i ponownie włącza DMA. Różnica jest w tym że resetowanie wskaźnika mam w przerwaniu od DCMI. Dzięki temu każda kolejna ramka obrazu powinna zaczynać się od pozycji zerowej bufora (obraz zawsze powinien być w tym samym miejscu, nawet jak po drodze któraś rama straci...
Komputer od lat ma tragiczne parametry, ale dla dziadków używających jedynie przeglądarki internetowej się nadawał. Od niedawna muli na potęge, i system (okna explorer) i przeglądarka, i wszystko. Mogę przeinstalowac dziadkom system, ale nie chce mi się tego robić jeśli i tak winą jest wada, awaria sprzętu. Czy na podstawie specyfikacji speccy (parametry,...
Tak jak w temacie, mam nadzieję, że coś pomoże. Komunikaty przekopiowane żywcem z forum sklepu PCProjekt. 0. 0x0000 Operacja zakończona pomyślnie. 1. 0x0001 Niewłaściwa funkcja. 2. 0x0002 System nie odnalazł określonego pliku. 3. 0x0003 System nie odnalazł określonej ścieżki. 4. 0x0004 Otwarcie pliku jest niemożliwe. 5. 0x0005 Brak dostępu. 6. 0x0006...
Od niedawna posiadam starego kompa o paramerach jak: http://www.elektroda.pl/rtvforum/topic38... Proble jest następujący i można go krótko zdefiniować "żółw" Kom w czasie od 20 minut w zwyż pracuje całkiem zadowalająco. Problem komp pracyje bardzo wolno w czasie do 20 minut od uruchomienia. Prawie wszystko co było możliwe w "msconfig" zostało...
To dlaczego rozmiar bufora 512 bajtów miałby nie wystarczyć? Po zarezerwowaniu wypełnił bufor jakąś wartością, później w czasie pracy podejrzyj co się w nim dzieje.
Witam, Bufor nadawczy jest o rozmiarze jednego wysyłanego znaku (tak na prawdę jest to rejestr przesuwny samego UARTu). Zapisując dane do UDR jeśli bufor nadawczy jest pusty to od razu jest przepisywana do niego dana i rozpoczęcie transmisji. W innym przypadku jeśli w UDR są nowe dane a nie wszystko zostało wysłane to sprzęt czeka aż się wyślę i przepisze...
http://obrazki.elektroda.pl/9470588900_1... Poznajmy Nibblera - 4-bitowy procesor, zbudowany w domu. Od czasu, kiedy autor stworzył komputer BMOW1, otrzymywał wiele zapytań, jak zabrać się do skonstruowania w domu własnego komputera. I jako że BMOW to skomplikowana maszyna, autor postanowił opracować urządzenie, którego działanie będzie...
Mnie zastanawia jedna rzecz, skoro korzystasz z przerwań to po jakiego grzyba tam input? Zobacz jak mozna to rozwiazac: Odebrano: Disable Urxc ' wylaczenie przerwania na czas trwania aktualnego 'Jesli licznik znakow jest mniejszy od maksymalnego rozmiaru bufora to... If Licz_znaki < Max_znakow Then '...zwieksz licznik znakow, do buforu transmisji...
Nie prawda, że ta opcja włącza pamięć cache w dysku! Ona włącza dodatkowy bufor tworzony przez system operacyjny w pamięci RAM. Rozmiar tego bufora można zmieniać np. grzebiąc w rejestrze systemowym lub za pomocą programów w stylu TweakUI. Jego zbyt duży rozmiar może powodować utratę pewnych danych przy zamykaniu systemu, jeśli nie zdążą się one zapisać...
konfiguracja kontrolera polega na tym, że do kilku(nastu) rejestrów wpisujesz odpowiednie dla siebie wartości, ustawiasz rozmiar buforów, adres MAC etc. W tym module kontroler jest widoczny w przestrzeni pamięci pod 32 adresami zaczynając od 0xFF00, więc dostęp do rejestrów jest skrajnie prosty. Komunikacja z tym układem nie jest skomplikowana, z początku...
Odbiór danych o nieznanym rozmiarze przez DMA jest bardzo problematyczny... Ponieważ włączyłeś tryb "circular", to w zasadzie jedyna opcją jest późniejsze składanie danych w dodatkowym buforze - będziesz musiał skopiować to co jest na końcu bufora DMA i potem to co jest na początku - tak aby dane znów były w poprawnej kolejności. DMA realizuje po prostu...
Jeśli używasz stosu USB z CubeMX, to: 1. Oprogramowanie urządzenia niekoniecznie jest poprawnie skonfigurowane, np. słynne już błędne ustawienie VBUS sensing lub bzdurny rozmiar bufora danych w CDC. 2. Funkcje wysyłania danych muszą być wołane z przerwania o tym samym priorytecie, co przerwanie USB - inaczej urządzenie się powiesi z powodu błędnych...
Ale Kolego, SPRZĘTOWY bufor nadawczy/odbiorczy tego procesora ZAWSZE ma rozmiar 1 bajta. Tego nie da się zmienić - tak jest z punktu sprzętu i koniec. Aby stosować większe bufory musisz zastosować przerwania (RX_vect, UDRE_vect), bufory kołowe i zrealizować teoretycznie ograniczony tylko dostępnym RAM'em bufor programowo. Załączam kompletny przykład...
co zawiera beginTransaction beginTransaction(SPISettings settings); SPISettings: uint32_t clock (domyślnie 1000000) uint8_t bitOrder (domyślnie SPI_MSBFIRST) uint8_t dataMode (domyślnie SPI_MODE0) Funkcja zakłada blokadę SPI_MUTEX_LOCK w danym wątku, który jest później zwalniany przez endTransaction(). co kryje się za poleceniem transfer(stuff); void...
Witam, jeśli nie potrzebujesz dużej rozdzielczości (co pociąga za sobą duży rozmiar bufora) możesz użyć prostego przesuwania bitów, rejestru szeregowego lub bufora FIFO do którego będziesz co określony czas dodawał wartość/stan wejścia pomiarowego.
$include (REG51.inc); dołączenie definicji rejestrów uK (kompilator RA-51 Raisonance) NAMEOBSLUGA_AT24C64 ;Poniżej definicje stałych użytych w programie FIXEDADDR EQU0A0H;stała częśc adresu pamięci 24C64 USRADDR EQU0;ustawiana przez użytkownika część adresu (wartości 0..7) MEMSIZE EQU2000H;liczba bajtów dla 24C64 PMEMSIZE EQU32;liczba bajtów na stronę...
Cześć Co do tego co napisałem wcześniej( będą strony z data sheet do Twojego procka): Jak program odwoła się do obszaru pamięci UNDEFINED(ABORT)str.18,19 to generowany jest wyjątek "data abort", procesor wchodzi w tryb "ABORT MODE" i skacze pod adres 0x00000010 a adres powrotny zostaje zapisyna w rejestrze R14_ABORT,str41. Adres niezdefiniowanej pamięci...
Jaki masz sterownik? Tyle pomiarów to nie jest jakaś wielka ilość dla większości sprzętu. Zaletą takiego bufora kołowego jest to, że masz zawsze (poza startem) obliczenia z pełnej ostatniej godziny. Możesz też liczyć średnią narastającą. W jednym rejestrze sumować kolejne próbki, a w drugim liczyć ilość próbek. Przy tym rozwiązaniu ogranicza Cię rozmiar...
U mnie działa tak więc kod jest prawidłowy ! #include <windows.h> #include <stdio.h> #include <stdlib.h> #include <time.h> #define cbOutQueue 35 //rozmiar bufora danych wyjściowych #define cbInQueue 35 //rozmiar bufora danych wejściowych int __fastcall Write_Comm(HANDLE hCommDev, DWORD nNumberOfBytesToWrite); int __fastcall...
Skorzystać z odbioru danych w przerwaniu od UARTA. Mały przykład dla ciebie: $regfile = "M32def.dat" 'Deklaracja typu mikrokontrolera $crystal = 8000000 'Czestotliwosc oscylatora $baud = 9600 Const Max_znakow = 11 'rozmiar bufora Dim Bufor As String * Max_znakow Dim Licz_znaki As Byte Dim Flaga As Bit Enable Interrupts On Urxc Odebrano 'przerwanie...
To nie to, nie adresowanie rejestrów. Wszędzie w przykładach bez SPL widzę DMA1_Channel0-> itd., a u mnie nie ma tych definicji. Dodano po 3 Tak przy okazji - rozmiar bufora podaje się w wybranych jednostkach czy zawsze w bajtach? Tzn. jeżeli rozmiar bufora jest 50 a wybrane mam Half_Word to znaczy że będzie 50 słów 16to bitowych czy 50 bajtow - 25...
potrzebna ci jest tzw. tablica kolowa. masz wiec tablice o rozmiarze n i dodatkowo dwa wskazniki, jeden - ktory pokazuje jej 'poczatek' i drugi - pokazujacy jej 'koniec'. pare trikow programowych i masz rejestr kolowy. jak cos wpisujesz to robisz to do rejestr[koniec++]. jak odczytujesz to czytasz z rejestr[poczatek++]. musisz potem wywolac funkcje,...
Dosyć odważnie sobie poczynasz na mikrokontrolerze mającym 2kB Flash i 128B SRAM :D ale do odważnych świat należy. Odchudziłem Ci trochę kodzik. Obsługa przerwania timera została stuningowana moim programem NoSave Tool. Teraz mikrokontroler nie odkłada na stos większości rejestrów a tylko te potrzebne - w tym przypadku tylko jeden :D Przekłada się to...
http://obrazki.elektroda.pl/7525632900_1... w przypadku rotacji, obieg jest zamknięty, w przypadku rejestru przesuwanego bit 7 nie wraca na bit 0 tylko wypada, na bit 0 wchodzi logiczne zero. to najprostszy wyjaśnienie. przesuwanie można robić w prawo jak i lewo oraz o dowolną liczbę n (dla byte 0..7, dla word 0..15, dla dubleword 0..31)....
Cześć :) W związku z tym, że w miejscu w którym pracuję istnieje potrzeba programowania pamięci SPI których wsad jest taki sam, stwierdziłem że zbuduję urządzenie, które będzie kopiowało zawartość jednej kości do drugiej. Niby nic, ale z czasem chciałbym zająć się zawodowo projektowaniem oraz programowaniem mikrokontrolerów, więc jako pierwszy projekt...
Hejka Uzywal ktos takiego modulu? (CC1000PP SmartRF firmy Chipcon)? Udalo sie to cholerstwo wam uruchomic? Ja juz trace nerwy bo za nic w swiecie nie chce dzialac. Modul nie moze byc uszkodzony (mam ich 5 i przy kazdym sie to samo dzieje). Problem polega na tym ze zadnego rejestru wewnatrz tego badziewa nie moge zapisac. Pozniej podczas odczytu dostaje...
https://obrazki.elektroda.pl/3563451200_... Intro Zawsze fascynowała mnie możliwość konwersji sygnału czasowego na dane w dziedzinie częstotliwości. Pamiętam jak w wieku około 16 lat dopytywałem mojego ówczesnego nauczyciela matematyki, jak działa transformata Fouriera. Dowiedziałem się wtedy tylko że jest to całka, niestety nic więcej...
Zegary na pewno dobrze ustawione ? Jeśli nie masz dzielnika przez 2 na tym APB gdzie jest UART4 to wartość w rejestrze BRR jest błędna (no chyba ze taktowanie też jest inne niż 72MHz) UART4 jest na APB1, a ta ma max. 36MHz, więc nawet jeśli MCU jest na 72MHz, to musi być dzielnik Dodano po 4 PS. Dla pewności zobacz jaki masz rozmiar bufora wejściowego...
http://lmgtfy.com/?q=STM32F303+oscillosc... Zrobić to można na wiele sposobów, tutaj bufor ADC jest podzielony na dwie połówki (DMA_IT_TC | DMA_IT_HT), połówki naprzemiennie wrzucane są do FIFO (rozmiar trochę przesadzony), dane z FIFO konsumuje USB device. Jeżeli ograniczysz się do ok. 900 kBps (czyli np. 900k próbek 8-bit na sekundę) to można transmitować...
(...) 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...
Tego bitu FRXTH nie widziałem, jak rozumie on ustala mi rozmiar bufora RX. Bity SSI i SSM ustawiam na "1" jeżeli chcę generować programowo sygnał SS układem master to tak chyba muszę te bity ustawić? Przynajmniej na tyle doczytałem, ale mogłem coś pomieszać. Po resecie rejestr CR2 ma wartość 0x0700 co daje bitom DS wartość 0111 czyli 8-bitów (przynajmniej...
Zobacz sobie do rejestru RSTCTRL.RSTFR. (at)ElektrodaBot W poniższym fragmencie kodzie w C dla AVR128DA32: int main(void) { CCP = CCP_IOREG_gc; CLKCTRL.OSCHFCTRLA = CLKCTRL_FRQSEL_8M_gc;// OK init_Uc(); // initialization mikrokontrolera TWI1_init(); ; init_MCP(); // initialization MCP23017 lcd_init(); lcd_gotoxy(5,0); lcd_puts("dziala OK"); _delay_ms(500);...
Poddaję się ! nie mogę rozgryść rysowania wykresu , wyliczam na kartce po kolejii tak jak masz w programie i jakieś bzdury mi wychodzą. Mógłbyś mi wyjaśnić łopatologicznie jak to masz zrobione ? Program jest dość zakręcony, ale postaram się to jakość wytłumaczyć. Generalnie rozchodzi się o to, że mamy bufor cykliczny buff K = Ptr + 1 'ustawienie najstarszego...
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...
No rzeczywiście szkoda to zmarnować. Najważniejsze do sterowania są bufory szeregowo równoległe 74LS164. Podłączasz do pierwszego z nich procka. Komunikacja odbywa sie po I2C więc jak chcesz sterować z kompa do musisz chyba i tak dorobić uC + RS232. Zasada sterowania Wysyłasz po I2C jeden bit i przesuwasz tyle razy aż dojdzie do tej kolumny co chcesz...
Ponieważ aktualnie mierzę się z podobnym problemem w driverach zaimplementowanych w moim RTOSie, powiem Ci szczerze, że taki sposób obsługi SPI jest po prostu niemożliwy do zrobienia poprawnie i tak żeby osiągnąć jakąś rozsądną częstotliwość. Sytuacja którą obserwujesz jest stosunkowo prosta. Natychmiast po uruchomieniu transmisji masz pierwsze przerwanie...
W Zmienne globalne — wiedz, kiedy są modyfikowane Zmienne globalne muszą być ostrożnie obsługiwane, gdy są używane z przerwaniami, ponieważ te są generalnie asynchroniczne. I jeżeli zmienna globalna jest modyfikowana przez ISR, może zostać zmieniona w dowolnym momencie. Musimy mieć na uwadze następujące aspekty: Odczyt/zapis zmiennych globalnych...
Odniosę się tylko do nadajnika, bo mam wrażenie, że autor wątku w tej chwili właśnie nadajnik próbuje wykonać. Nadajnik możesz to zrobić w oparciu o timer, na którym ustawisz sobie określony zegar - np. te porządane 250 kHz. Być może musisz ustawić 500kHz - aby wyłapywać nie tylko czas cyklu, ale i jego zbocze narastające i opadające. Potem budujesz...
Witam, Mam problem z konfiguracją ADC. Chcę skanować 3 kanały, 5, 8 i 9. W momencie przerwania Timera chciałbym wysłać poprzez DMA wartości 3 kanałów ADC do bufora Adc, jest to tablica 3 elementowa. Coś jest nie tak bo jak wysyłam te wartości do terminala to otrzymuje losowe wartości, podczas gdy kanał 5 jest podłączony do masy, 8 do zasilania a 9 wisi...
tylko string do znaku NULL a w buforze może już być następny znak a Ty ustawiasz Index na 0 Nie może być z dwóch przyczyn. 1. Jesteś w środku przerwania a sei nie było 2. Kopiowanie jest raczej szybkie Jedna uwaga na marginesie. Używanie takich funkcji jak strcpy, o których kompilator nic nie wie w przerwaniu może skutkowac odkładaniem dużej ilości...
Do tej pory omówiliśmy znaczenie ostrożnej obsługi przerwań, metody solidnej strukturyzacji ISR oraz uwagi wymagane do zmiennych globalnych i lokalnych ( Uważaj na przepełnienia bufora danych Generalnie używamy programowych buforów do interfejsów komunikacyjnych. Na przykład, mikrokontroler może zapewnić podrzędny interfejs komunikacji szeregowej I²C...
Witam, Bawię się zestawem ZL27ARM i robię ćwiczenia z książki "STM32. Aplikacje i ćwiczenia w języku C" Jestem przy ćwiczeniu 18 i mam problem z DMA (pierwszy raz mam styczność z DMA). Zgodnie z przykładem wypełnienie PWM powinno zmieniać się od 0 do 100%. U mnie jest cały czas 50%. Dane z tablicy bufor_PWM nie są przekazywane do TIM1->CCR1 http://obrazki.elektroda.pl/9548353800_1...
Witam, gdy będziesz budował kolejną matrycę graficzną, to zainteresuj się diodami RGB WS2812B Bardzo fajne te diody. Budowa matrycy RGB to ciekawa opcja i myślałem nad tym przez chwilę, ale nie było stać mnie na taki wydatek, sama matryca kosztowałaby tyle, co cały mój projekt w obecnej formie. Wolałem zrobić monochromatyczną matrycę, ale w większym...
rozmiar akumulatora rozmiar alokacji rozmiar papieru
wymiana laser kenwood zdjąć obudowę pralka candy esl67070r electrolux
wykrywacz metali wykrywacz metali schemat
Lokalizacja bezpiecznika kierunkowskazów w Peugeot Expert Układ L6388 w sterownikach silników DC i BLDC