https://obrazki.elektroda.pl/5694434400_... Moduły zasilaczy warsztatowych, takie jak DPS5005, dostępne są od dłuższego czasum.in. na AliExpress. Doczekały się wielu recenzji, w większości pozytywnych. Jednakże często wskazywanym problemem z tymi modułami jest kiepskiej jakości oprogramowanie – interfejs użytkownika pozostawia...
Witam, Przyjaciele moi programiści. Przeczytałem pól książki związanej z asemblerem i oto co stworzyłem. Program oczywiście działa, dziękuje wam wszystkim za pomoc i oczywiście dobre rady. Temat uznaje za zakończony. ;Aplikacja tworzy plik \dane.txt i zapisuje do niego 100 pseudolosowych liczb .586P .MODEL flat, STDCALL ;--- stale z pliku .\include\windows.inc...
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...
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.
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...
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...
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.
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...
$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ę...
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ć...
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...
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...
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...
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....
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...
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...
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...
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...
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...
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)....
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...
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...
Podejrzewam, że najwięcej problemów robi to: pamieci przydzielonej dynamicznie nie zwalniam i jak widać jest kaszana.tylko jak rozumiem musialbym to zrobić poza funkcją substr? całkiem mozliwe.patrze a avr studio i dzieją sie dziwne rzeczy. Jeśli zaczniesz zwalniać pamięć poza funkcją substr, to łatwo narobić błędów typu wycieki pamięci (kiedy w pętli...
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:...
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/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...
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...
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...
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...
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...
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...
Jeszcze mam jedno -może dwa pytanka. Otóż dla mnie najwygodniejsze było by zrobienie odbioru danych wszystkich czterech uartów w przerwaniach. Tak aby jeśli przyjdą jakieś dane, z któregoś z moich czterech modułów komunikujących się właśnie poprzez rs232 , to działo by się mniej więcej coś takiego że: 1.Po pierwsze dane przesyłane są w postaci "paczek...
Tak jak w temacie coś mi kod nie działa proszę o pomoc gdzie leży błąd Ps wyświetla A ale B to nie wyświetla korzystam z 8Mhz [syntax=objc] #ifndef UART_H_ #define UART_H_ //Załączenie bibliotek systemowych #include<avr/io.h> #include<avr/interrupt.h> #include<util/delay.h> //Zadeklarowanie używania lub nie RS485 #define RS_485 0 #if...
(...) 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...
(at)Boruc95: Płytka z pierwszego zdjęcia była robiona jako pierwsza - po prostu zapomniałem na końcu odwrócić tekstu ;-). (at)bobo Moje matryce 8x8 5mm mają chyba około 6cm (chyba 57mm), więc jest to kwadrat o boku około 22,8cm lub prostokąt 45,6cm x 11,4cm. Co do przewodów to faktycznie, nie wyglądają zbyt estetycznie, ale jednak zdecydowałem się na...
http://obrazki.elektroda.pl/2754324000_1... Witam. Wcześniej zajmowałem się wyświetlaczem kolorowym TFT 3,5" oraz STMPE811 . Jak już zrobiłem układ i udało się go oprogramować, to zupełnie wybiłem sobie z głowy próby podłączania takich paneli bezpośrednio do procka. Bo jak pisałem - można, ale jakość, szybkość, dokładność i ciekawe możliwości,...
Rozwiązałem część problemu (źle rozumiałem adresowanie w Packet Memory ale dzięki zerowaniu tego obszaru pamięci podczas resetu USB i podglądu w debugerze + podglądnięciu jednego z przykładów zrozumiałem jak to działa) i otrzymuję teraz prawidłowe żądanie GET_DESCRIPTOR. W trakcie pisania tego postu też w końcu doszedłem do tego co robię źle... błąd...
Po pierwsze, wymyśliłeś te warunki na FLASH i zewnętrzną pamięć w absurdalnych rozmiarach, do projektu, który jak się wydaje da się zrobić w kilku kB FLASH i bez zewnętrznej pamięci RAM. A wbrew pozorom to nie takie proste jak ci się wydaje. Jeśli decydujesz się na ARM z zewnętrzna pamięcią to płytka się komplikuje strasznie, a i routowanie sygnałów...
dzienniki zmian SDK 2.0 i SDK 1.3.7 mają tę samą funkcjonalność. (646/143) 1. Dodano przepływ sterowania daemon_thread. 2. Domyślnie metoda connect jest blokująca. Aby użyć metody nieblokującej, włącz makro NO_BLOCK w rda59xx_daemon.c. 2017-02-11 V1.3.6(534) 1. Naprawiono błąd w pwm i dodano funkcje kontrolne dla pwl0 i pwl1. Zobacz przypadek testowy:...
IRQ tester https://obrazki.elektroda.pl/3243423400_... IRQ Tester to proste narzędzie, głównie do testowania czasu odpowiedzi na impulsy, lub czasów międzyzboczowych dostarczonego sygnału. Program został napsiany na ukontroler AVR Atmega168, a jego głównym zadaniem jest funkcja multiwibratora monostabilnego, którego działanie polega...
http://obrazki.elektroda.pl/7154876600_1... Boberov Unbelievable Boot Loader V0.1 2013 Na wstępie skrócone informacje na temat projektu którego szerszy opis znajduje się w dalszej części tekstu. Program bootloadera przeznaczony jest dla ATMEGA8 (po minimalnych zmianach każdy AVR z wystarczającą ilością pamięci), umożliwia programowanie...
Niestety, zakładam w programie wielkość i to mi wystarcza. Można odczytać rejestry a można spróbować odczytać jakieś dalekie dane i sprawdzić odpowiedź. Co do danych z CSD to się nie bawiłem, w CID zawsze jest rozmiar ale trzeba go mądrze interpretować bo to ciąg tekstowy. W 90% występuje coś w stylu ...SDNNNXX.... gdzie NNN - rozmiar, XX - jednostka....
Witam, Programuję sobie procesorek AT89C2051 i magistralę 1-Wire. O ile z odczytem danych z magistrali nie było problemów, o tyle z wysłaniem tego przez RS-232 jest problem. Czy ktoś z użytkowników ma jakieś gotowe procedury zapisu i odczytu do porty RS232? W BASCOM wszystko działa, ale chcę to zrobić w C. Na razie doszedłem do: //funkcja obsługująca...
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);...
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...
Jakieś wieści? Czy możesz przerobić konfigurację i powiedzieć mi, co psuje rzeczy? Chciałbym dodać jakiś rodzaj zabezpieczenia, ale muszę wiedzieć, co się psuje. Ale to jest bardzo, bardzo dziwne , ponieważ po restarcie piny nie są uruchamiane jeśli więcej niż 5 restartów nie powiedzie się (tryb bezpieczny) EDYCJA: może błąd przepełnienia bufora ciągu?...
schemat buforu sterownik buforu danych buforu
lexia sterowniki interfejsu radio dwójka żywica poliestrowa epoksydowa
makita dga504 ładowarka samochodowa
DeLonghi Dinamica - problem z pojemnikiem na skropliny Brak świateł postojowych w Piaggio ZIP 4T 2008