2011-09-15 5 views
0

큰 도트 매트릭스 디스플레이를 제어하기 위해 데이터를 일부 시프트 레지스터로 보내는 Arduino 용 프로그램을 작업 중입니다. 스크롤 할 텍스트가 필요합니다. 여기가 문제가되는 부분입니다. 예를 들어 디스플레이에 "HI"가 표시된다고 가정 해 봅시다. 전체 화면의 첫 번째 데이터 세트는 "10001 11111"입니다. 첫 번째 단계에서 켜져있는 열을 나타냅니다. 내가 함께 넣고 공간을 추가하면 "10001011111"이 나옵니다. 2 진수를 1로 나누면 2로 나눌 수 있습니다.Arduino의 이진 시프트 레지스터 연산

예를 들어 "11111"/ 2 = 01111입니다. 다음 번분은 00111, 00011, 00001 등입니다. 문제는 데이터를 2 자리의 개별 시프트 레지스터 (각 자리에 하나씩)에 전달한다는 것입니다. 먼저 "11111"을 보낸 다음 "10001"으로 이동합니다. 스크롤 할 때 데이터를 한 디스플레이에서 다른 디스플레이로 전송해야합니다. 정말 시도 내가

  H | I 
     10001 0 11111 
     01000 1 01111 
     00100 0 10111 
     00010 0 01011 
     00001 0 00101 
     00000 1 00010 
     00000 0 10001 
     00000 0 01000 
     00000 0 00100 
     00000 0 00010 
     00000 0 00001 
     00000 0 00000 

필요 무엇

 H | I 
    10001 0 11111 
    01000 0 01111 
    00100 0 00111 
    00010 0 00011 
    00001 0 00001 
    00000 0 00000 

BAD 일 "HI"에 대한 : 아래 차트이 더 이해하는 것입니다 내가 생각할 수있는 모든 것. 해결 방안은 무엇인가?

답변

0

데이터를 저장할 수있는 공간 안에 선이 들어가면 전체 선을 놓고 옮길 수는 없습니까? 고정 된 중앙 구분선 공간을 사용하는 대신 메시지를 개별 문자로 인코딩하지 말고 표시하려는 매트릭스와 동일하게 인코딩하십시오.

10001011111 

후 2

01000101111 
00100010111 

에 의해 반복적으로 격차가 다른 모든 라인에서 같은 일을 할, 내가 2 일이 10001000100 2 개 작품을 똑같이하여 오른쪽 시프트 분열 될 것입니다 내기 .

0

두 번째 열로 10001011111을 이동하십시오. 00000010001을 첫 번째 숫자로 변경하십시오.