PIC18F4550로 데이터 프레임을 받기

B

brucelee2

Guest
안녕 모두, 메신저 내 방에서을위한 개인적인 프로젝트에 노력하고있어. 난적인 HMI를 (휴먼 머신 인터페이스), 자사의 800 * 480 화면있다. 그것은 당신이 표준 시리얼 연결을 사용하여 (나 통신 프로토콜과 dataframe)을 보내 다양한 명령을 사용할 수 있습니다. 지금 : 화면 특정 전송 속도에서 마이크로 컨트롤러로 데이터 프레임을 보냅니다. 이 데이터 프레임과 같이 보입니다 : (. 터치 스크린 coord) 0xAA (시작) 0x73 (16 비트 coord 엑스.) (16 비트 보낸 편지 coord) 0x33 0x3C 0xC3 내가 터치 스크린을 누르면 움직이는 비트 운임 금액이 있습니다 그래서. 오직 내 생각 킷에는 UART 모듈에 8 비트 레지스터를 갖고 그림. 그럼 어떻게 내가 변수에이 몇 비트를 받았나? (유지 보 요금 요법 ...) 아마도 인터럽트? MIKROELECTRONIKA MikroC 컴파일러를 사용하여 임. 간단한 킷에는 UART 라이브러리 비트가 있습니다 한번에 8 비트 것으로 보인다 ...... 당신들 회신을 기다리겠습니다! 건배, 브루스 : D 조
 
안녕하세요, 찍어 Usart 모듈은 단지 8 또는 9 비트로 고정되어 있으므로이 엑스 / y를 입력한 다음 16 databits으로 나는 당신이 일을 끝낼 수있는 볼 수있는 유일한 방법은 전송되는 좌표는 고객님의 소프트웨어는 직렬 링크를 작성하는 것입니다. 당신이 칩, 또는 USART 포트가 다 떨어 단순히 필요없이 어떤 usarts을 몇 가지 예제를 찾을 수 떠들고 비트를 검색하는 경우, 그래서 소프트웨어 usarts는 공백을 채울 작성해야합니다. 그들은 아마 모두 있지만, 8 비트 모드에있을 거라고 확신 그것이 16 비트 acceprt 수 있도록하는 방법으로 당신을 안내할 것입니다.
 
알려 줘서 알았어요 감사합니다. 하지만, Mikroelectronica의 MikroC는 소프트웨어 킷에는 UART 라이브러리를하고 다시 만 8 비트가 :-(을 handeling .. 난 아픈 일부 '비트 banging'soon을 시도해야 할 것 : 경찰의 대용량 데이터 프레임에 상당히 힘들 것 같아 .. ... 어느 하나는 C에서 좋은 예제를 (들)이있다면 내가 사본을 할 수 있습니다 주시기 바랍니다.
 
안녕하세요,이 센서는 SPI 직렬을 사용하며, 전체 12 비트 데이터 열받게 하네을 보냅니다. 이 페이지의 오른쪽에 도움이 될만한 몇 가지 C 코드의 예입니다. (센서를 사용하여 자신하지만 어셈블러에서만) [홈페이지]에 http://www.sensirion.com/en/01_humidity_sensors/02_humidity_sensor_sht11.htm의 [/ 홈페이지]
 
않는 한 방법 비트 놀아 접근을 알아? 그것은 우선 같은 뭔가를해야만 될 : 1. 생성 외부 인터럽트 시작 비트가 발생할 때. 2. 3분의 1 * 1/baudrate 즉시 샘플 핀 타이머를 시작합니다. 비트 당 3 번. 3.Dissable이 기간 동안 인터럽트. 4. 중지 비트 6.disable 시간 후 다시 활성화에 대한 변수 5.check에 비트를 교대 외부 인터럽트 방법이이 소리가?
 
이것은 장치가 16 비트로 합칠수들에게 의미하는 16 비트 값을하지만이 연속 8 비트 값을 반환하지 때문일 수 있습니다.
 
그것은 0x로에 전송?? 8 비트 헥스 값하지만 특정 전송 속도로 한 번에 큰 스트림. 그래서 있지만, 찍어 킷에는 UART 모듈이을 처리할 수 없습니다 오히려 할 몇 가지 소프트웨어를 inplement해야합니다. Bitbanging. 하지만 bitbanging 일을 어떻게 파악해야하는지입니다. proceedures / 이벤트 프로세스 다이어그램 것 같아요 도움이 될
 
이 HMI는 '표준 시리얼 연결을'이 아닌 표준 시리얼 프로토콜, 즉, 아니 시작 비트, 그만 비트 프레임을 사용 그래서. 어때요 part-/model-number?
 
그것은 8N1, 그래서 8data 비트, 그만 및 비트, 패리티 비트를 시작합니다. 내가 혼란에 그것이 큰 데이터 프레임을 전송합니다 그 어디 메신저 맞춰보세요. 하지만 것이다 MCU는 등록이 아직 내 소스 코드를 읽을되지 않은 경우 다음 바이트를 보내는 HMI에 그만? 아니면 HMI는 계속됩니다 .... : |
 
두 동료는 하드웨어 핸드 셰이크를 사용할 수 없다면 [견적] 또는 HMI는, ....[/ 견적] 네 나갈 것입니다. 최대가 버퍼에 데이터 버스트를 읽고 프로세스 그들을 나중에 문제가 발생하지 말아야 심지어 그것을 처리 플라이 - 적당한 프로그래밍. 킷에는 UART의 인터럽트에있는 데이터를받는 일반적인 방법입니다.
 
HMI에 보내 핸드 쉐이크 명령이 있습니다, 그러나 이것은 하드웨어가되지 않습니다. '의 0x00는'나머지는 프레임 구조입니다 핸드 쉐이크 부분이다; 0xAA 0x00 0x33 0xC3 0x3C 보내십시오. > Rx Tx는 Gnd - HMI에에만 3 연결이 있습니다. Naybe가 작동 Tx는 핀에 interrup의 routunes를 사용!
 
의사 코드 : [코드] 수신 인터럽트 :받은 문자는 '금주'쇼핑몰 버퍼에 Buffer_pointer + + 다른 Buffer_pointer = 0 Message_received 경우 = 0 인 경우 수신기 Message_received = 1 끝 인터럽트 [/ 코드]에서 Buffer_pointer == length_of_message + 1 회전 .. . 회신 부분은 충분히 간단 인터럽트를 요구되지 않는 것 같습니다,하지만 일단 수신기가 뭔지는있다, 그렇게 쉬운 것입니다.
 

Welcome to EDABoard.com

Sponsor

Back
Top