Na SS dajesz stan niski tuż przed wpisem danej do rejestru danych SPI, po zakończeniu transmisji ustawiasz ją na 1. Od strony mastera to nie musi być pin oznaczony jako SS, ale od strony slave tak. Tu masz linka do przykładów: ftp://ftp.helion.pl/przyklady/jcmikr.zip
Masz przecież w rejestrze UCSRxA bit TXCx który jest ustawiany po zakończeniu transmisji.
Wewnętrzny oscylator 1MHz Zmodyfikuj rejestr OSCCAL odpowiednią wartością.
Sposób najprostszy - użyć przewodów zamiast mikrokontrolera. Jeśli nie stać nas na dwa przewody, można zaprogramować DMA w tryb cykliczny na bezpośrenią transmisję pomiędzy rejestrami danych obu UARTów. Jeśli oprócz kopiowania dane mają być jeszcze przetwarzane, to należy oprogramować oba UARTy na przerwaniach i w nich zrobić przetwarzanie danych i...
Ryzykowne - nie wiesz co zrobi urządzenie. Skoro producent udostępnia interfejs modbus to powinien udostępnić wykaz rejestrów. Inaczej po co udostępniał by interfejs. Edit Oprócz wykazu rejestrów potrzebne jeszcze są parametry transmisji -prędkość -ilość bitów danych -ilość bitów stopu -kontrola parzystości czasem zapisuje się to w takiej formie 9600...
Czy one kiedykolwiek są "dualne" tzn raz słowowe, raz bitowe ? Owszem, są takie architektury, w których jest wymagany specyficzny dostęp do rejestrów. Przykładem może być moduł SPI w nowszych STM32. Dane do transmisji zapisuje się do rejestru danych, który może mieć 8 lub 16 bitów szerokości. Operacja zapisu wyzwala przepisanie zawartości rejestru...
Ściągnij manual do MCU mającego PDI - np. do XMEGA. Tam znajdziesz sekcję Program and Debug Interface. W tej sekcji opisany jest protokół transmisji danych, oraz rejestry PDI i część poleceń. Protokół masz opisany w szczegółach na 6 stronach, potem masz opis poleceń wspólny dla JTAG i PDI - kolejne 8 stron, mniej więce wyjaśnia większosć kwestii. Zobacz...
twoje rozumowanie wynika z uproszczonego analizowania działania rejestrów: dla ciebie jest to zwykła komórka, do której to co się wpisze będzie odczytane (w skrócie)... od tego stanu jednaj zacznie odbiegać np rejestr wymiany danych z usartu - do którego wpisuje się dane do transmisji, ale odczytuje dane z odbiornika... w praktyce rejestry i/o są bardziej...
Procedura którą przywołujesz to główna pętla obsługi modbusa ... odpowiada za obsługę protokołu, aktualizuje zniemme ( rejestry ) Nie musisz liczyć crc .. stos freemodbus robi to za ciebie ... inaczej nie miałbyś transmisji danych. Jeśli chcesz poszukaj w moich starych postach jest gdzieś termohigrometr z interfejsem modbus .. oparłem go właśnie o stos...
- instrukcja str 110 - MODBUS (rs485) - cyfrowa transmisja danych. Wpisujesz prędkość do odpowiedniego rejestru w falowniku. - praca wieloprędkościowa -definiujesz prędkości (zazwyczaj max 16 prędkości) w falowniku a wybierasz kombinacją stanów na listwie zaciskowej. - praca w trybie motopotencjometru - podając napięcie ja jeden zacisk zwiększasz a...
Musisz całkowicie zmienić obsługe slave. Po pierwsze musisz wprowadzić synchronizację, czyli machać linią SS. Po drugie odbiór w slave należałoby oprzeć na przerwania SPI - SPI nie ma wielostopniowego bufora, kolejne bity nadpisują poprzednie. W efekcie musisz mieć pewność, że zdążysz z odbiorem. To w miarę gwearantują ci przerwania, na pewno nie delaye...
Rozumiem, tylko nie mogę w specyfikacji odnaleźć jak ten mikroprocesor ma pamięć żeby to tego wykorzystać. Przydało by się jakies 10x8-bitowy rejestr.
A jak sieczka to typowy myk: masz ustawiony kierunek rysowania nie w tą stronę co chciałeś. Karta katalogowa ILI9325 - rejestr Entry Mode 03h (str 55/56) - dobierz odpowiednią wartość.
Do wyprowadzeń CAN L i CAN H nie można podłączać nic oprócz rezystorów terminujących, sygnalizację za pomocą diod LED można zrobić odczytując programowo znaczniki odebrania ramki CAN, każda transmisja na magistrali CAN uruchamia flagi w rejestrach procesora. Programowo można uruchamiać przez port procesora diody Led w zależności o odebranych danych,
Przy tej prędkości zegara wykorzystaj przepisanie UART do zmiennej i tam na niej operuj. Rejestry UART bywają nie dostepne w trakcie transmisji.
Ten tryb transmisji jest używany tylko do wysyłania danych do rejestru szeregowo-równoległego. Nie nadaje się do wczytywania informacji.
rejestr 103 ma flagę: https://obrazki.elektroda.pl/8574094700_... Śledź go w przerwaniu. I przełącz kierunek transmisji danych na 485. https://obrazki.elektroda.pl/8388104100_...
Po jednym kabelku dane przesyła się szeregowo. Nigdy więc nie będzie to transmisja równoległa. Ale do tematu należy podejść inaczej - przesyłamy szeregowo, a później odebrane dane w tym samym momencie ustawiamy na wyjściach rejestru. Dla odbiornika danych wygląda to jakby transmisja była równoległa. I tutaj wracamy do pytania o pasmo, czyli częstotliwość...
Masz źle skalibrowany OSCCAL. Daj kwarc zewnętrzny - to podstawa jeśli chcesz mieć stabilną komunikację niezależnie od napięcia zasilającego i temperatury. Doraźnie możesz sam skalibrować rejestr OSCCAL.
Tu nie leży problem w " koernixa" -ustawienie he395: 1 adres urządzenia slawe 2 prędkość transmisji zgodna z mlog 3 ustawienie komendy 03 4 ustawienie rejestru do odczytu 5 odczyt zmiennej "intiger" 6 sprawdzenie na jakimś urządzeniu master, czy odczytujesz czujnik temperatury 7 koernixa transmisja danych do mlog (przesyła dane 485) w programie dopóki,...
Co do kruczków z kolejnością to raczej ich nie ma, poza wymogiem ustawienia bitu DLAB przed zapisem wartości baudrate (rejestry baudrate są pod tym samym adresem co rejestr danych i rejestr przerwań). Jest parę takich rejestrów, wymagających ustawienia przed dostępem do nich jakiegoś bitu, ale nie ma w tym nic skomplikowanego. Wartości rejestrów dla...
oja opinia o ~10 zapytaniach na sekundę odnosi się głównie do ModbusRTU, czyli takiego pracującego na jakimś interfejsie szeregowym Nie wiem czemu tak sądzisz. Wszystko zależy od prędkości transmisji i długości rameki. >100 spokojnie można uzyskać (at)57600bps przy transmisji kilku rejestrów.
SCON=40h TMOD=20h TH1=brak danych (kwarc),prawdopodobnie FD dla 11,059
A najśmieszniejsze jest to że zapalają się wtedy wszystkie 4 diody jak mowie do aktywnego mikrofonu Smieszne jest raczej to że się nie chce przeczytać RM-a (ze dwa akapity normalnie) If the conversions are slow enough, the conversion sequence can be handled by the software. In this case the EOCS bit must be set in the ADC_CR2 register for the EOC status...
ja wykorzystuje te polecenia do wysylania i odbioru danych na rejestry przesowne 74164 i 74165 z procami tego jeszcze nie sprawdzalem
Jeżeli chcesz uzyskać pomoc, to wstaw właściwy program. Deklaracja zmiennej nie ma nic wspólnego z tym co wysyłasz. W podanym programie wysyłasz tylko 8 bitów. Rejestr sprzętowego SPI nie przyjmuje więcej niż 8 bitów, a w funkcji programowego SPI inicjujesz "licznik" na 8 bitów, przez co nie możesz wysłać więcej. Najprostszym sposobem jest wysłanie...
Wystarczy wysłać Start i Adres. Po otrzymaniu ACK, DMA może wysłać wszystkie pozostałe dane. W tym przypadku, również adres rejestru. W przerwaniu od zakończonego transferu DMA, potrzebujesz jeszcze tylko wysłać Stop. Tylko tyle i aż tyle. W nowszych (np. F7, L4) jest trochę łatwiej. Konfiguruję i włączam DMA. Adres oraz ilość bajtów do wysłania wpisuję...
Na linię danych wysuwa się zawartość rejestru przesuwnego, do którego dane są ładowane z FIFO co DS[3:0] taktów zegara. Jeżeli nie zapisujesz nic nowego do rejestru danych SPIx->DR, to zawartość FIFO również się nie zmienia. Myślę, że rysunek 358 w RM0316 dość dobrze oddaje działanie układu. Zwróć uwagę, że Slave musi wystawić dane już przy pierwszym...
Po dłuższych próbac udało mi się nawiązać transmisję poprzez port LPT w trybie EPP (zarówno "oryginalnym" EPP jak i w ECP z wymuszoną pracą w trybie EPP). Kluczem do powodzenie były ostatnie wskazówki tjanusza, mianowicie zajęcie się bitem błędu Timeout (bit 0 w rejestrze bazowy+1) oraz bitem EnableBiDir (bit 5 w rejestrze bazowy+2). Gdy wysyłałem dane...
Pewnie by się dało tak zrobić, interfejs klawiatury jest dość prosty - potrzebny jest sygnał zegarowy, transmisja rozpoczyna się gdy na linii zegara jest stan wysoki, każdy stan wysoki to kolejny bit. Słowo składa się z 11 bitów - bit startu, 8 bitów danych, bit parzystości i bit stopu. Problem tylko w tym, że sygnał zegarowy musi być ciągle, zaś dane...
Dobry wieczór! Znalazłem powód braku komunikacji. Jak zwykle drobne niedopatrzenie. W czasie ustalania parametrów transmisji należy ustawić szósty bit (Receiver Enable) w rejestrze CNTLA0. :-) ld A,%01100100 ; parametry transmisji: 8 bitów danych, 1 bit stop, bez parzystości out0 (CNTLA0),A ; b6 - Receiver Enable, b5 - Transmitter Enable Niestety transmisja...
Nie. Trzeba w rejestrach 1C i 1D włączyć tryb "dynamic payload". Zresztą tam jest najlepiej wszystko ustawić na 1 bo aktywuje się sporo interesujących opcji. Nastepnie jak wrzucasz dane do FIFO (za pomocą WR_TX_PAYLOAD lub W_TX_PAYLOAD_NOACK w zależności od tego czy chcesz otrzymać potwierdzenie dostarczenia tego pakietu od odbiornika czy nie) w celu...
DMA1->IFCR = 0; A co wg Ciebie robi ta operacja? Przed odpowiedzią przeczytaj odpowiednią stronę w RM-ie No tak, kasowane są jedynką. Poprawiłem na: Przerwanie DMA dostaniesz po wielokrotnościach ustawionej długości. Czyli po 8, 16, 24, 32, ... odebranych bajtach. Jeśli wyślesz 15, to przerwanie powinieneś dostać po wysłaniu jeszcze jednego bajtu....
Witam, kiedyś zastanawiałem się nad czymś takim. myślałem o procku AT90S8535 który ma 8 kanałowy multiplexowany przetwornik AC. jezeli dodać dodatkowy multiplexer sterowany z uP to powinno być ok. czas konwersji o ile pamiętam wynosi około 600us zatem zczytanie pozycji 12 potencjometrów trwa 7.2ms. nie wiem czy to by wystarczyło czy nie. przyciski można...
Wpisz w googlach tiny rtc i2c znajdziesz schemat modułu :) Krótko o I2C: ramki są 8 bitowe, chcąc zapisać cokolwiek do slavea trzeba w pierwszej ramce wysłać jego adres i następnie adres pamięci / rejestru do którego bedzie zapis, po czym wysyła się daną lub dane. Jeśli chodzi o odczyt ze slavea trzeba wysłać w pierwszej ramce jego adres i nastepnie...
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...
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...
Nie bardzo rozumiem o co chodzi z tym uaktualnianiem wartości rejestrów. Teraz to mało istotne bo już wiem, że chodziło Ci o coś innego ;). PS nie chodziło o wartości rejestrów - tylko o cały rejestr (jako zbiór danych) wszystkich nieaktualnych transmisji. Czysto teoretycznie rozważałem przypadek gdzie odbiorniki mogą być poza zasięgiem i nie posiadają...
jeśli to mają być tylko wejścia ("30 dodatkowych wejsc") to poszukaj o rejestrach przesuwanych z ładowaniem... to chyba były 74x165.. 3 linie procka głównego i możesz rozszerzać sobie wejść do woli - jeden układ = 8 dodatkowych wejść, całość strobujesz jednym sygnałem a potem tylko zegarem przesuwasz wszysko do procesora - nawet można by wykorzystać...
Zwróć uwagę, że w F4 każdy kanał DMA ma 2 rejestry adresowe - można więc wykonać transmisję bez jakichkolwiek przerw, obsługując kolejne przerwania od kawałków danych w czasie transmisji. Mamy też przerwanie od połowy transmisji - możliwości przyspieszenia i zrównoleglenia jest naprawdę sporo.
Pilnie poszukuję odpowiedzi na pytania: 1. Sposób zgłaszania żądania DMA przez urządzenie zew. I/O 2. Sposób wywoływania transmisji pamięć - pamięć 3. Do czego służy rejestr przejściowy w DMA 4. Który rejestr służy do przechowywania danej w transmisji I/O - pamięć 5. Jak odmaskować transmisję DMA w danym kanale 6. Jak zrealizowano dostęp do szesnastobitowych...
...Czy SPI działa "niezależnie" tzn do rejestru wpisujemy wartości i SPI samo działa sobie z boku... Dokładnie tak; nie wysyłasz bitów 'ręcznie'. Jeżeli włączysz SPI, to zapisanie bajtu danych do rejestru automatycznie rozpoczyna transmisję i równolegle odbiór 8 bitów. Po zakończeniu operacji zostanie ustawiona flaga/flagi przerwania, a samo przerwanie...
to moze wyłącz w ustawieniach bacom'a USART i ustaw ją samodzielnie powinienes miec możliwość wpisywania odpowiednich danych do rejestrów, albo pozmieniaj prędkość transmisji lub kwarca i zobacz czy zadzialalo.
Zakupilem zstaw z kamami z ARM na pokladzie (LPC2129) i zaczynam sie bawic . Napotkalem problem z uruchomieniem SPI w/g dokumentacji: http://www.nxp.com/acrobat/usermanuals/U... dodam ze interesuje mnie konfiguracja jako master z sygnałem zegraowym wychadzącym z ARM'a po kolei musze ustawic:(str 180) -rejestr zegara (chodzi o podzial...
PDC_TCR to rejestr ilości danych w bieżącym buforze, 16-bitowy licznik ilości danych do wysłania. Po transmisji danej , licznik jest automatycznie dekrementowany. Właśnie programuje EMAC, więc jeśli problem będzie się powtarzał przy innych rejestrach, napiszę.
Wykonuję Kolejno czynności: -Inicjuję I2C (I2C_Init) - Wysyłam START transmisji i adres układu z 1 na końcu czyli zapis (I2C_SendStartAndSelect) - Wysyłam adres rejestru do odczytu (I2C_SendByte) - Wysyłam START transmisji i adres układu z 0 na końcu czyli odczyt (I2C_SendStartAndSelect) - Odczytuję dane z rejestru I2C_ReceivData_NACK(); Zapis to 0...
Nie przestudiowałeś protokołu komunikacji. W inicjowaniu zapominasz wysłać wartości, masz start, masz wysłanie adresu slave'a z pisaniem 38h, masz wysłanie adresu rejestru 20h, a po tym powinieneś wysłać wartość którą chcesz wpisać do tego rejestru, czyli np. 47h, a dopiero po tym stop. W prośbie o dane wywal pierwszy stop, robisz porprostu kolejny...
Witam! Po pierwsze to z reguły przyciski powinny zwierać piny wejściowe do masy a nie do zasilania. Wynika to z faktu posiadania przez procesory AVR wewnętrznych rezystorów pull-up podciągających wejścia do +vcc, czyli panuje na nich stale stan wysoki (oczywiście gdy zostaną uaktywnione). Po drugie to akurat sygnał CLK ma się zmieniać, podczas narastającego...
posiadam rejestrator w którym znajduje się złącze rs485. (...) Rejestrator obsluguje protokoł pelco-d lub normal.(...). Chcę kupić 3 kamery, które działają na rs485.(...) Kamera to Samsung SCC-931TP(...) Moje pytanie brzmi czy do tego rejestratora mogę dołączyć te 3 kamery na rs485 ? Jeśli kamera Samsung SCC-931TP posiada możliwość wyboru protokołu...
Nie powinno być różnicy - sprawdź voltomierzem. Otóż właśnie pin R/W służy do zwierania do masy, jeżeli chcę mieć transmisję w jednym kierunku. Zapis danych do rejestrów LCD (wyświetlanie), i to jest pewna transmisja. DB0 - DB3 NC. Tak łączę i nie miałem nigdy problemów - przy prawidłowym podłączeniu. Przy prawidłowym podłączeniu nigdy nie ma problemu....
Procedura ustawiania zegarka jest błędna. Pierwszym bajtem powinien być numer rejestru, od ktorego zaczyna sie zapis. Podobnie odczyt - najpierw trzeba wykonać zapis numeru rejestru, a potem odczytać dane. Można to połączyć w jedną transmisję z repeated-start. Rejestr sekund ma numer 2.
Witam. Po przetrawieniu całości tematu i tygodniowej walce z 2! bateriami poległem w walce ze sterownikiem akku. BQ 2040 na 24C01. Pierwsza z posiadanych baterii to oryginał do gericoma overdose3 produkcji clevo (87-2208S-42C), natomiast drugi egzemplarz zakupiłem na allegro. I tu pojawia się problem. Laptop od samego początku nie był w stanie odczytać...
Dwa procesory w tym trybie nie nawiążą komunikacji, ponieważ ten typ transmisji służy tylko do wysyłania danych do zewnętrznego rejestru przesuwnego. Na dowód załączam skan z książki.
Miałem na myśli łatwość analizy i przechowywania sygnału tak otrzymanego na komputerze za pomocą choćby karty dźwiękowej. Można obejrzeć bardzo dokładnie przebieg w funkcji czasu. W przypadku analizy emisji akustycznej liczyć się mogą wszelkie impulsy (trzaski). Analiza modulacji, jak w przypadku nietoperzy lub odbioru radiowego nie nadaje się z reguły...
Wystarczy skonfigurowac UART i odpowiednie predkosci transmisji w mikrokokontrolerze (rejestr UBBR) i format danych oraz w PC. Potem w asm masz: out udr, rejestr - wysłanie bajtu w 'rejestr' a odbior najlepiej przez przerwanie obsluga przerwania: in rejestr, udr RETI warto sprawdzac flagi, przykłady są w nocie katalogowej atmela Pozdr Paweł
;* ;***************************************... ;*PROCEDURY OBSŁUGI MAGISTRALI 1-Wire DLA MIKROKONTROLERA AVR ;***************************************... ;* ;*Nazwa pliku :AVR_1Wire.asm ;* ;*Przeznaczenie :dowolny AVR, za wyjątkiem AT90S1200 ;*Kwarc :4MHz ;* ;*******************************OPIS****...
Drogi kolego. Koledzy wyraźnie powiedzieli, że musisz wiedzieć jaki masz protokół transmisji. Moduły mogą mieć protokół MODBUS RTU lub zwykły RS232 z dedykowanymi komendami odczytu poszczególnych kanałów. Podam Ci przykład. Wagi elektroniczne mają różne protokoły. Jedne odpytuje się wysyłając S I CR LF, inne wysyłając samo S CR LF, a jeszcze inne protokołami...
Właśśnie.. A ja tylko dwie flagi sprawdzam: TXE przed wpisaniem danych do rejestru DR oraz RXNE przed odczytaniem DR - oczekiwanie końca transmisji. P.S. Uzyskałeś transmisję? Próbowałeś czyścić FIFO?
Odświeżę. Próbuję połączyć arduino i s7-1200 po ethernecie. Mam konfigurację jak u kolegi i odczyt rejestrów jako 0, 40001 śmiga. Nie działa mi natomiast zapis do rejestrów. Kombinowałem z różnymi MODE i adresami ale ciągle mam 80C5 (odrzucone połączenie). Jakie MODE i adres wykorzstujecie w arduino i plc do zapisu rejestrów z arduino?
Korzystam z ds'a układu MCP4728, rev. E. 0. Maksymalna częstotliwość zegara dla I2C przy zasilaniu ~3V (nie 5V), to 400kHz. 1. Załadowanie danych do 4 rejestrów to 83 bity, strona 38. 2. Czas przesłania danych do 2 układów, czyli 8 kanałów, to (1/400 * 83)*2 = 415us. To daje maksymalną częstotliwość odświeżania rejestrów 2,41kHz. 3. W Twojej propozycji...
Witam, RXD jest alternatywną funkcją portu, UART lub USART - sprzętowe wsparcie dla szeregowej transmisji danych, nie korzystasz z tego przy implementacji 1wire. Możesz dowolnie zmienić pin procesora do którego będzie podłączony termometr. Pozdrawiam. GSM P.S. Kod który wkleiłeś pisał ktoś niekonsekwentny. Aby uzyskać łatwą zmianę używanego pinu, poza...
Tak, 1-2 to komunikacja do pobrania danych z falownika, 3-4 to do podłączenia licznika zewnętrznego. https://obrazki.elektroda.pl/4288078300_... Sprawdź czy parametry transmisji masz OK. Tam te pakiety latają jak wspomniałem dość rzadko, ten z blokiem danych jak zobaczyłem w swój kod to mam timeout na otrzymanie jego na 150s.
Rejestry deklarowane przez program nie mają nić współnego z rejestrami mikrokontrolera , z resztą odczyt i zapis zawartości mikrokontrolera ich nie dotyczy , bo są fizycznie w pamięci ram której programator nie zapisuje . "Rejestr" nie oznacza tylko fizycznego rejestru rdzenia procesora czy peryferiala . Może to być jedna lub kilka komórek w pamięci...
1. Jakiego zegara używasz do taktowania USART'a? PCLK czy SYSCLK (RCC->CCIPR)? 2. Po co mnożysz * 256 w obliczaniu BR? Ad1. SYSCLK ( który dopiero teraz ustawiłem, poprzez RCC->CCIPR (domyślnie jakbym tego nie ustawił to nie powinien być SYSCLK?) Ad2. Wzór podany przez prowadzącego na studiach, który "podobno zawsze działa" chociaż " szywronek " pisze...
Hm.. ostatnio przestudiowałem opis łącza szeregowego z powodu drobnego zaniku pamięci o rs'ie.. napałem że można sterować pinami RTS (7) i DTR (4). otóż po przestudiowaniu dokumentacji dowiedziałem się że pinem TxD (3) również można sterować bezpośrednio (nie za pomocą rejestru przesówanego): 1 na TxD port[$3f8+3]:=port[$3f8+3] and (not $40); 0 na TxD...
W urządzeniu było mało USART, został użyty układ SC16IS760IPW. Teraz musze dodać kolejny SC16IS762IPW czyli dwa USART. Procek z USARTEM komunikuje się po SPI. Komunikacja to wysłanie adresu rejestru i zapis/odczyt danej. Teraz wszystko odbywa sie w pętli głównej, muszę jednak odbiór przenieść na przerwania. Jak sie łatwo domyśleć, nie może byc tak,...
Po paru słabo przespanych nocach mogę powiedzieć że transmisja jest możliwa. Choć to oczywiście nie takie proste należy ustawić szereg rejestrów w telegesisie i oczywiście operować na tym samym profilu.
Te dwie linijki przed pętlą while to konfiguracja interfejsu SPI mikrokontrolera. Rejestry SPCR i SPSR służą do ustawiania parametrów transmisji. Szczegółowy ich opis jest w datasheecie do mikrokontrolera (strony 141 - 143). Wartości jakie wpisane są do rejestrów determinują następujące warunki transmisji : - Wyłączone przerwania od SPI (bit SPIE w...
Dawałem breakpointa, również dioda na płytce zasygnalizuje mi wejście do void DMA2_Stream1_IRQHandler(void) W kodzie obsługi przerwania jest tylko włączenie diody, a potem kasowanie flagi przerwania. Ale gafa...zapomniałem ustawić bit TCIE w rejestrze CR :| ehh
Hm... not so fast. Na linii Rx cały czas utrzymuje się stan wysoki, a w czasie odbioru - niski. Fazę dałoby się odwrócić, ale jest to tylko półśrodek. Mnie interesuje bardziej flaga w rejestrze która będzie mnie informować o aktywności rejestru szeregowego odbierającego dane, a nie o gotowości UDR.
Ze względu na tą drobną niedogodność wymagającą rzutowania? Pytanie czy to niedogodność. Po prostu cena za FIFO w SPI. W końcu skądś SPI musi wiedzieć jakiej szerokości daną wrzucasz do bufora. Ustawienie szerokości transmisji to już jest inna sprawa. Wg mnie to daje więcej możliwości w przypadku szybkiej transmisji (odbiorze) poprzez DMA + inne peryferia...
Zaczynasz dobrze. Wg protokołu inicjację "/?!\r\n" wysyłasz na prędkości 300 bd (ustawienie transmisji 7E1). Nie żadnej innej - 300, bo tak mówi norma. Licznik energii ma wówczas maksymalnie 2 sekundy na odpowiedź, a odpowiedzią jest wpierw ramka identyfikatora licznika, który ma postać "/XXXZD<CR><LF>", gdzie XXX jest identyfikatorem producenta,...
Jesteś pewien, że wykłada się przy wysyłaniu adresu, a nie przy wysyłaniu danych? W obu wypadkach w razie błędu zostanie zapalona ta sama dioda, a jestem wręcz pewien, że jeżeli zostanie przesłany adres, to dioda zapali się przy wysyłaniu danych. Powód prosty: if ((TWSR & 0xF8) != TW_MT_SLA_ACK ) PORTC &= ~(_BV( PC7));...
Czytam, że robisz jak napisałem tak jest dość łatwo jak nie znasz za bardzo VHDL-a. Co do produktów Altery to nie miałem nigdy z nimi kontaktu. Moje marzenie to DE2-70 z resztą akcesoriów :). Słuchaj ja bym to zrobił tak w Xilinxie wyposażasz MB w IP Core od RS232. Odczytujesz wartość czy ciąg znaków co wysyła PC następnie zapisał bym to do tablicy...
Aż się z ciekawości podłączę do tego tematu :-) dzik - dokładnie wytłumacz co chcesz zrobić i czym świecisz: matrycą led czy wyświetlaczem 7-segmentowym. Narysuj jak i przez jakie układy to podłączyłeś. Patrzę na ten program i to jakaś rzeźnia jest. Aż tyle lookupów? Jakieś przepisywania zmiennych? Ale na co to? Niedawno robiłem ciekawy projekt "wyświetlaczarki"...
Mówiąc uboga mialem na mysli to, ze do ATmegi8 czy ATmegi16 dokumentacje sa znacznie bardziej dokladne, np. rejestr UCSRC w ATmedze8 jest dobrze opisany, a do ATmegi48 znlazlem tylko tyle, ze nazywa sie UCSR0C... , ale mniejsza o to. no ale właśnie nie żadna mniejsza o to, tylko zassij sobie pełnego PDF'a gdzie wszystko masz dokładniusieńko opisane....
Skomentuję ten twój kod. #include <avr/io.h> // dostęp do rejestrów #include <util/delay.h> #include <avr\sfr_defs.h> #include <avr\interrupt.h> #include <avr/interrupt.h> #include <avr/signal.h> #define F_CPU 16000000 //częstotliwość zegara w Hz #define UART_BAUD 19200UL //prędkość transmisji #define UART_CONST (F_CPU/(16ul*UART_BAUD)-1...
... natomiast w trybie synchronicznym linia TxD służy do wysyłania danych, a RxD służy do wysyłania impulsów synchronizacji. Jest dokładnie na odwrót - RxD to wysyłanie/odbieranie, a TxD to zegar. Zwróć uwagę, że zegar jest zawsze generowany przez procesor - zarówno w trybie nadawania, jak i odbierania. W jaki sposób urządzenie odbierające transmisję...
Wygląda na to, że biblioteka "FXModbusRTUSlave_V200" jest stabilniejsza od wersji V100 bo system chodzi od prawie 24h i komunikacja się nie zawiesza chociaż ciągle walczę z błędami CRC. Czy mógłbym prosić Was o weryfikację czy parametry transmisji: 8 bitów danych, 1 bit stop, brak parzystości, prędkość 19200 i transmisja po RS485 dobrze przeliczyłem?...
Z tego co wiem, funkcja obsługująca przerwnie void HAL_UART_TxCpltCallback jest wywoływana, gdy rejestr tx Usarta jest pusty, więc gdy nadawanie zostało zakończone. Wówczas nadajemy kolejny znak. Co tutaj jeszcze sprawdzać?
Witam while (1 == 1){ fSuccess = WriteFile(hCom, &rs_buff, 30, &RS_ile, 0); printf ("Wyslalem: %s \n", &rs_buff); //Zwieksz czas. Sleep(10); fSuccess = ReadFile(hCom, &read_buffor, 30, &RS_ile, 0); //Czemu read_buffor nie jest zadeklarowany jako wskaznik??? printf ("Odczytalem:...
Spróbuj ustawić transmisję: 1 bit stopu Even (parzysty) 1 bit startu 8 bitów danych. Trzeba jeszcze przesunąć rejestr danych o 1. np z 21 na 20 lub nie, oczywiście zależy to od slave A także spróbuj zamiast FC3 - FC4. Ja mam PLC od wersji oprogramowania 1.4 Wygląda, że liczby w tym liczniku są całkowite. Jeżeli zawartości rejestrów były by zmiennoprzecinkowe,...
Ważne jest ustawienie takiego samego formatu transmisji w procesorze jak i w terminalu. Skorzystaj z ustawień 8N1, czyli 8 bitów danych, bez bitu parzystości, 1 bit stopu. Sprawdź w dokumentacji atmegi jakie wartości wpisać do rejestrów UCSRB UCSRC aby uzyskać dany format transmisji.
Witam, Nie mogę dojść czemu USART nie wysyła mi danych, przeszukuje ten internet, przeglądam dokumentację ale wszystko wydaje się ok, a mimo to na linii głucho. [syntax=c]#include "inc/stm32f10x.h" #include <stdint.h> int main( void ) { RCC->APB2ENR = RCC_APB2ENR_IOPBEN | RCC_APB2ENR_IOPAEN;// uruchomienie PORTA oraz PORTB RCC->APB1ENR =...
Dodanie RAM do systemu bezpośrednio umożliwiają tylko mikrokontrolery Mega64 i Mega128, ale kosztem dwóch portów (adresowanie A8-A15, szyna danych+A0-A7) i dwóch sygnałów sterujących (RD i WR) - to 18 wyprowadzeń. W mniejszych MCU trzeba dobudować rejestry adresowe i danych (3X8) oraz linie sterujące (RD i WR). Zakładając, że transmisja do rejestrów...
Początkowo multipleks miałem zbudowany na switch case, ale obecnie jest na if'ach. I wygląda tak: Ta sama historia co z klawiszami, wystarczy mądrze w [syntax=c]SendSpi ( pgm_read_byte (&CYFRY[CYFRA3]) );[/syntax] dodać zmienną licznik np [syntax=c]SendSpi ( pgm_read_byte (&CYFRY[CYFRA3+licznik<<2]) );[/syntax] Kolejna brzydka rzecz,...
przerzutniki D, T, JK prawie we wszędzie przy prostych układach pamieciowch, rejestry służą do przekazywania danych z jednego miejsca w drugie, do tlumaczenia transmisji z szeregowej na równoległa bądź odwrotnie. Są zbudowane z przerzutników w róznych układach. SISO - rejestr szeregowo szeregowy - serial input serial output SIPO - rejestr szeregowo...
S-Bus to protokół master-slave, binarny, nieco podobny do Modbus ale ciut efektywniej wykorzystujący łącze szeregowe; integralność danych kontrolowana CRC-16; rejestry są 32-bitowe. Zobacz ten archiwalny dokument: https://sbc-support.com/uploads/tx_srcpr... Opis protokołu to pierwszy rozdział; reszta jest mniej istotna....
Co do komentarzy, to istnieje pewna teza, że lepiej pisać kod, który sam się "komentuje", niż dodawać rozległe komentarze tekstowe. Powód jest oczywisty - komentarze tekstowe nie zawsze się skrupulatnie koryguje przy debugowaniu i wprowadzaniu modyfikacji, więc po kilku iteracjach może bardziej mylić niż pomagać. Kiedyś przykładowo dostałem do modyfikacji...
Już widzę kogoś, kto opiera pętlę główną na delay() i próbuje odczytać przyciski do 3ms ;) ( swoją drogą - po co ? ) Fotokomórka zatrzymująca prasę aby niezmiarzdżyła ręki. Reakcja po np 0,7sekundy nie wchodzi w grę. Albo obsługa enkodera Dekodowanie DCF77 Mnożyć dalej przykłady? 1- w obsłudze przerwania z expandera, odczytujesz rejestry expandera...
kod pojedynczego klawisza ma 11 bitów z tego 8 bitów danych, chciałem zapytać czy clock działa cały czas czy wypuszcza 11 impulsów przy naciśnięciu klawisz?? jeżeli działa cały czas (tak pewnie jest) to czy w tym schemacie w linku ta informacja zostanie wyświetlana, czy "przeleci" przez diody rejestry i diody, jeśli tak to jak ją zatrzymać aż do naciśnięcia...
Witam Zerknij [url=http://www.elektroda.pl/rtvforum/to... nie jest to rozwiązane jak napisałeś, choć można się doszukać pewnego podobieństwa. To co opisałeś to zmiana kierunku transmisji na magistrali 1wire, a nie zmiana jej stanu. AVR mają porty (można sterować każdym bitem niezależnie) w których trzeba wprost określać kierunek przesyłania...
Dzięki za odpowiedź. Znalazłem ciekawy poradnik odnośnie konfiguracji SPI na Attiny. W nocie katalogowej podpisy "MISO" i "MOSI" dotyczą ISP, a nie SPI. Bazując na poradniku i poradach paw789 obecnie mam taki kod: [syntax=c]#define FOSC 16000000 // Clock Speed #define BAUD 9600 // ustawienie predkosci wysylania bitow #define MYUBRR FOSC/16/BAUD-1 #define...
Freddy masz lepszy rysunek. Ale jest na nim mylące SHIFT ENABLE. Wydaje mi się że CLK powinien być podłączony do SHIFT rejestru, natomiast ENABLE do /SS czyli SLAVE SELECT. Naprawiłeś już to radio? N.
(at)albertb: Zwróć uwagę, że ja także podaję to jako alternatywę nie krytykując Twojego rozwiązania. Przepraszam, nie chciałem nikogo urazić czy krytykować. Sam początkowo pomyślałem: przecież to banalnie proste, więc w czym problem. Zacząłem kombinować podobnie jak Ty, ale właśnie napotkałem problemy, o których napisałem powyżej. Te 960 taktów nie...
TXC0 ustawia się w chwili opróżnienia rejestru nadawania, rejestr przesuwny transmisji jeszcze nadaje ostatnią ramkę. Jedyny sposób jak już masz czasówkę w programie to ustaw ją na czas transmisji danych + czas oczekiwania do przełączenia MAX485. Czyli na 10x czas bitu +1ms (jeśli używasz ramki z jednym bitem stopu), przy 2 będzie 11x czas bitu + 1ms,...
Bezpośrednie łączenie portów LPT z COM grozi USZKODZENIEM obydwu portów! - odmienna technologia buforowania portów COM i LPT i inne (niekompatybilne) poziomy logiczne (RS232 +-12V). Nie radzę eksperymentowania w tym zakresie! Natomiast istotnie, istnieją konwertery zamieniające sygnały transmisji szeregowej (COM) na równległą LPT (i odwrotnie) - kwestia...
Rozwijam dalej swoją aplikację. Trafiła mi się dziwna sprawa z RFM70. Kiedy wyłączę w funkcji odbioru danych warunek sprawdzania rejestru STATUS transmisja idzie znacznie sprawniej niż kiedy sprawdzam ten rejestr. Radiowo transmituję dane z czujnika SHT75 i bez sprawdzania rejestru STATUS w RFM70 transmisja jest co 1-3 sekundy. A ze sprawdzaniem rejestru...
Mam następujące pytanie: AVR pracujący w trybie podrzędnym po odebraniu bajtu danych ustawia znacznik SPIF w rejestrze SPSR, tak wynika z noty katalogowej. Po przejściu do obsługi przerwania znacznik ten jest zerowany. Jeśli obsługa transmisji nie wykorzystuje mechanizmu przerwań należy go "ręcznie" wyzerować. Jeśli transmisja po SPI przesyła serię...
Cześć. Należy pamiętać, że w MODBUS'ie słowa zabezpieczające informacje zależą od trybu transmisji. Na początek może LRC, czyli Longitudinal Redundancy Check - jest on dołączany przez nadajnik jako ostatnie pole ramki, bezpośrednio przed znacznikami końca linii (Carriage Return i Line Feed) w trybie ASCII. Najkrótsza droga do osiągnięcia tego słowa...
kabel transmisji danych protokoły transmisji danych systemy transmisji danych
klimatyzacja eberspacher numer łożyska pralko suszarka opinie
kostka licznika yamaha unifi ultra
Modulator dźwięku Federal Signal, Whelen, Elfir – lokalizacja w karetce, montaż, parametry Marantz SA-11S2 nie odtwarza płyt SACD – przyczyny, diagnostyka, laser 650 nm, firmware