방법은 직렬 데이터의 수신 스트림을 저장할? (PIC16F877A)

V

vinodstanur

Guest
안녕하세요, 지금은 그저 그림에 USART을 배우기 시작했다. 지금 PIC16F877A의 RCREG 등록기에서 직렬 데이터를 읽을 수 있습니다. 하지만 지금은 30 변수 (하이퍼 터미널에서) 연속 키보드 pressings를 저장할. 내가 프레스 키보드 후 해당 아스키는 RCREG에로드되는 경우와 내가 한 변수에 저장할 수 있습니다. 최대 개까지는 일하는 ... 지금, PLS 방법 10 변수 10 연속의 키를를 저장하는 데 좀 작은 아이디어를 줄것이다 ...
 
[견적 파트너 임베디드 =; 859432] 사용 포인터와 배열 [/ 견적]를 사용하여 배열
 
마찬가지로 크기는 그 배열 및 포인터를받는 것을 원하지 문자의 개수와 동일한 문자의 배열을 사용하여, 파트너는 말했다 임베디드. 여기에 하이퍼 터미널에서 문자 스트림을 수신하는 함수에 대한 코드는. [코드] char *로 Receive_MSG (char *로 문자열을, 부호없는 짧은 정수 MSG_Length) {부호없는 짧은 정수 인덱스 = 0; / / 색인 메시지 (색인 <MSG_Length) {문자열 [인덱스] = Receive_Byte () 동안; 경우 (문자열 [색인] ! = 13 & & 문자열 [인덱스] = 10) {문자열 [인덱스 + 1] = '\\ 0'; NULL을 색인에 / / 설정 다음 문자 + +;}! 또 {문자열 [인덱스 + 1] = '\\ 0'; / / 설정 NULL을 깰 수있는 다음 문자;}} 반환 문자열;} [/ 코드]
 
안녕 vinodstanur, 당신이 사용하는 경우이 C, 언급된 배열과 포인터는 목적으로 쉽게 사용할 수 있습니다 위. 당신이 어셈블리를 사용하는 경우 (자세한 내용은 데이터 시트를 참조) 간접 - INDF과 FSR 레지스터와 주소 지정을 사용합니다. 고마워
 
시리얼 통신을위한 최선의 접근 방식은 원형 FIFO를 사용하는 것입니다 - 포럼 검색, 이것에 대해 어떤 논의가 이미있었습니다. 단순히 배열을 사용하는 아주 좋은 방법이 아닙니다 - 당신은 이벤트가 갈등을거야 발생 쓴다면 읽는 동안에 걸 확인할 수 있습니다. FIFO를 사용 - IT 전문가 만들기
 

Welcome to EDABoard.com

Sponsor

Back
Top