Pierwsze ramki danych na PIC18F4550

B

brucelee2

Guest
Witam wszystkich, im pracy na własny projekt do mojego pokoju. Mam HMI (Human Machine Interface), jego 800 x 480 Screen. Działa różnych poleceń, które można wysłać do niego (I protokołu komunikacyjnego i dataframe) przy użyciu standardowych połączenia szeregowego. Teraz: Ekran wysyła ramkę danych mikrokontrolera o określonej szybkości transmisji. Ta ramka danych wygląda mniej więcej tak: (. Coord ekranu dotykowego) 0xAA (start) 0x73 (16-bitowy X coord.) (16bit Y coord) 0x33 0x3c 0xC3 Tak więc istnieje kwota opłaty bitów ruchu, gdy wciskam na ekranie dotykowym. PIC ma tylko 8 Rejestr bit w UART MODUŁ I guess. Więc jak mogę to ilość bitów w zmiennej? (Zachowanie prędkości transmisji ECT ...) Może przerywa? Im przy MIKROELECTRONIKA MikroC kompilatora. Istnieje prosty UART nieco Biblioteka wydaje się 8 bitów w czasie ...... Czekamy na kontakt od Was! Pozdrawiam, Bruce: D
 
Witam, Jak Pics moduły USART ustala się na 8 lub 9 bitów tylko i współrzędnych x / y są wysyłane jako 16 bitami to jedynym sposobem widzę, że można to zrobić jest napisanie własnego oprogramowania łącze szeregowe. Jeśli szukasz Bit Banging znajdziesz kilka przykładów, gdzie chipy zabraknie portów USART, lub po prostu nie mają USART, więc USART oprogramowania być zapisane, aby wypełnić lukę. Będą one prawdopodobnie wszystkim w 8-bitowy tryb, ale na pewno będzie Cię, jak to zrobić acceprt 16 bitów.
 
Ok dzięki za podpowiedź. Widzę Mikroelectronica w MikroC ma oprogramowania biblioteki UART, ale znowu tylko 8 bitów handeling :-( .. Myślę, że będę musiał spróbować banging'soon nieco'': p. Think jej będzie bardzo trudne dla dużych ramek danych .. .. Jeśli ktoś ma jakieś fajne przykład (y) w C proszę może mam kopię.
 
Czy ktoś wie, jak podejść walić bit? Czy należy somthing jak: 1. Generowanie zewnętrzne przerwanie gdy nieco start nastąpi. 2. Start timer do pin próbki na 1 / 3 * ie 1/baudrate. 3 razy w bit. 3.Dissable przerwanie w tym czasie. 4. przesunięcie bitów w 5.check zmienne stop nieco czasu 6.disable i ponownie włączyć zewnętrzne przerwanie Jak to brzmi?
 
Być może, że urządzenie nie zwraca 16-bitową wartość, ale dwóch kolejnych 8-bitowych wartości, miało być łączone w 16-bitach.
 
wysyła go w jego 0x? 8 wartości szesnastkowe trochę, ale duży potok w raz na określony szybkością. więc nie może przetworzyć tego zdjęcia z modułu UART, ale raczej do inplement niektóre programy aby to zrobić. Bitbanging. Ale jak to zrobić bitbanging co mam się dowiedzieć. Schemat procesu proceedures / wydarzenia pomoże Myślę, że
 
Więc to HMI wykorzystuje "standardowego połączenia szeregowego", ale nie standardowy protokół szeregowy, tzn. nie start-bit, Ramy stop-bit. Jak o part-/model-number?
 
Używa 8N1, więc 8data bitów, zatrzymać i uruchomić bit, bez bitu parzystości. Myślę, że jeżeli im mylić jest to, że będzie on duży ramki danych. Ale MCU zatrzymać HMI wysłanie następnego bajtu, jeśli w rejestrze nie zostały jeszcze przeczytane przez mój kod źródłowy? Albo HMI nadal .... : |
 
Albo HMI nadal ....
Tak, chyba można używać zarówno rówieśników handshake sprzętu. UP nie powinni mieć problemów czytać porcję danych do bufora i przetwarzają je później, a nawet przetwarzać je w locie - z odpowiednim programowania. Odbieranie danych z przerwania UART jest metoda zwykła.
 
Nie jest poleceniem drżeniem ręki wysłane do HMI, ale nie jest to sprzęt. wysyłanie 0xAA 0x00 0x33 0xC3 0x3c, gdzie 0x00''''jest częścią drżeniem ręki reszta konstrukcji ramy. są tylko 3 połączenia z HMI -> Rx Tx Gnd. Naybe przy routunes przerw na pin Tx będzie działać!
 
Pseudo-kod:
Code:
 Receive-przerywa: jeśli otrzymał znak 'AA' Store w buforze Buffer_pointer + + jeszcze Buffer_pointer = 0 Message_received = 0 Buffer_pointer == length_of_message + 1 wyłączyć odbiornik = Message_received 1 end przerwać
.. . części odpowiedź wydaje się wystarczająco proste, nie wymagają przerwania, ale byłoby to łatwe do zrobienia, gdy odbiornik jest zorientowali się.
 

Welcome to EDABoard.com

Sponsor

Back
Top