Kaip laikyti gavo srautas serijos duomenis? (PIC16F877A)

V

vinodstanur

Guest
Labas, dabar aš ką tik pradėjo mokytis USART IS. Dabar galiu skaityti serijos duomenų RCREG registre PIC16F877A. Bet dabar aš noriu laikyti eilės klaviatūra presuoti (į HyperTerminal) 30 kintamųjų. Jei aš paspauskite klaviatūros tada atitinkamas ASCII yra pakrauta į RCREG ir aš galiu jį išsaugoti kintamąjį. Upto, kad jo darbo ... DABAR, PLS man maža idėja, kaip saugoti 10 iš eilės paspaudimo iš 10 kintamųjų ...
 
Kaip įterptųjų Partnerių sakė, naudokite simbolių masyvas su dydis lygus simbolius, kuriuos norite gauti, ir rodyklę į masyvo skaičių. Štai dėl funkcija, kad gauti simbolių srautą iš hiper terminalo kodą.
Code:
 char * Receive_MSG (char * String, nepasirašytos trumpas sveikasis MSG_Length) {unsigned trumpas int Index = 0; / / Pranešimas Rodyklė o (indeksas <MSG_Length) {String [Index] = Receive_Byte (); jei (Styginių [Index] ! = 13 & & String [Index] = 10) {String [Rodyklė + 1] = '\\ 0'; / / Nustatykite kitą simbolį NULL Rodyklė + +;}! else {String [Rodyklė + 1] = '\\ 0'; / / Nustatykite kitą simbolį NULL pertraukos;}} grįžti String;}
 
Labas vinodstanur, Pavartojus C minėtų matricos ir patarimų gali būti lengvai naudojamos šiam tikslui. Jei naudojate surinkimo, naudojimo netiesioginių sprendžiant su INDF ir MR registrus (žr. duomenų lape duomenis). Ačiū
 
serijos ryšių geriausias būdas yra naudoti apskrito FIFO - paieška forume, ten jau buvo kai apie šią diskusiją. Naudojant tiesiog masyvas nėra labai geras požiūris - rasite, kad per svarstymą, jei rašyti įvykio gausite konfliktai. Padaryti profesinės - naudoti FIFO
 

Welcome to EDABoard.com

Sponsor

Back
Top