안녕하세요. AVR을 배운지 얼마안되서 실력이 초보입니다.
제가 모형탱크에 DC모터, 서보모터를 만들고, USART로 조종기에서 모터들을 조종하려고 하는데요
USART 설정에서 8bit로 했습니다.
그런데 제가 전송할 데이터는 16bit여서요;; (서보모터 각도(8bit), DC모터 속도(6bit), 전진후진(2bit))
USART로 한번에 8bit 밖에 전송이 안되니 문제네요;
16bit를 패킷으로 묶어서 송수신하려면 어떻게 해야하나요?? 도와주세요.
일단 패킷을 만드는 수밖에 없네요.
보통 간단히 하면 처음 8bit로 패킷의 시작+전체 Data 크기 정도 표현하고,
다음 8bit Data * X 번 보내고(님같은 경우 16bit 이므로 2번 보내야 겠군요.)
다음 8bit 로 패킷의 종료 정보 보내고 하는 식으로요..
이런식으로 하면 결과적으로 4 * 8bit 가 되겠군요.
그리고 받는 쪽에서 매번 들어오는 8bit 신호를 해석해서 패킷 시작, Data, 패킷 종료 하는 식으로 구현해야져..
언뜻 비효율적으로 보일지 모르지만 한번에 8bit 밖에 못 보내는 USART 를 사용할 때 보통 이렇게 구현합니다.
안그러면 어느게 앞 8bit 이고 어느게 뒤의 8bit 인지 구분이 안 가게 되져~~
참고가 되려나 모르겠네요..
그럼...