jak przechowywać odbieranych danych szeregowych? (PIC16F877A)

V

vinodstanur

Guest
Witam, teraz i po prostu zacząłem się uczyć USART w PIC. Teraz mogę czytać dane szeregowe z rejestru RCREG z PIC16F877A. Ale teraz chcę do przechowywania kolejnych naciśnięć klawiatury (w HyperTerminal) w 30 zmiennych. Jeśli klawiaturze naciśnij i następnie odpowiedni ascii jest załadowany RCREG i nie mogę zapisać go w zmiennej. Upto, że jej ... Teraz, pls dawać mi mały pomysł jak przechowywać 10 kolejnych naciśnięciu klawisza w 10 zmiennych ...
 
Jak Embedded Partner powiedział, użyj tablicy znaków o wielkość równą liczbę znaków, które chcesz otrzymywać, a wskaźnik do tej tablicy. Oto kod dla funkcji, które otrzymują ciągiem znaków, z hyper terminal.
Code:
 char * Receive_MSG (char * String unsigned short int MSG_Length) {unsigned short int Index = 0 / / Indeks wiadomości while (Index <MSG_Length) {String [index] = Receive_Byte (); if (String [Indeks] ! = 13 & & String [Index] = 10) {String [Indeks + 1] = '\\ 0', / / Ustaw następnego znaku NULL Index + +;}! else {String [Indeks + 1] = '\\ 0'; / / Ustaw następnego znaku NULL break;}} return String;}
 
Witam vinodstanur, Jeśli używasz C, wyżej wymienione tablice i wskaźniki mogą być używane łatwo do tego celu. Jeśli używasz zestawu, użyj adresowania pośrednie z INDF i FSR rejestrów (patrz arkusz danych informacji). Dzięki
 
do komunikacji szeregowej najlepszym sposobem jest użycie okrągły FIFO - szukaj na forum, było już kilka dyskusji na ten temat. Korzystanie z tablicy po prostu nie bardzo dobre podejście - dowiesz się, że podczas czytania czy pisania zdarzenia dostaniesz konfliktów. Zrób to profesjonalnie - stosowanie FIFO
 

Welcome to EDABoard.com

Sponsor

Back
Top