як зберігати отримані потік послідовних даних? (PIC16F877A)

V

vinodstanur

Guest
Привіт, зараз я тільки почав вивчати USART в ПОС. Тепер я можу читати послідовної передачі даних від RCREG реєстр PIC16F877A. Але зараз я хочу, щоб зберігати послідовних натискань клавіатури (в HyperTerminal) в 30 змінних. Якщо клавіатура я натискаю то відповідні ASCII завантажується в RCREG, і я можу зберегти його у змінній. До своєї роботи, що ... ЗАРАЗ, PLS дайте мені маленька ідея, як зберігати 10 послідовних натискання клавіші в 10 змінних ...
 
використовувати покажчики і масиви
 
Як Embedded Partner сказав, використовувати масив символів з розміром, що дорівнює кількості символів, які ви хочете отримати, і покажчик на цей масив. Ось код для функції, які отримують потік символів з Hyper Terminal. [Код] символ * Receive_MSG (символ * String, непідписаним Int MSG_Length) {непідписаним Int Index = 0; / / Повідомлення Індекс час (індекс <MSG_Length) {String [Index] = Receive_Byte (), якщо (String [Index] ! = 13 & & String [Index] = 10) {String [Index + 1] = '\\ 0', / / Встановити наступний символ NULL Індекс + +;}! зе {String [Index + 1] = '\\ 0'; / / Встановити наступний символ NULL перерви;}} повернення String;} [/ код]
 
Привіт vinodstanur, Якщо ви використовуєте C, вищезгадані масиви і покажчики можуть бути легко використані для цієї мети. Якщо ви використовуєте збірку, використовувати непрямі адресації з INDF і FSR регістрів (див. дані для подробиць). Спасибі
 
для послідовного зв'язку найкращий підхід полягає у використанні кругової FIFO - знайти на форумі, там вже деякі обговорення з цього приводу. Використання просто масив не дуже хороший підхід - ви дізнаєтеся, що під час читання, якщо написати події ви отримаєте конфліктів. Зробити це професійно - використання FIFO
 

Welcome to EDABoard.com

Sponsor

Back
Top