C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[60607] Re:Re:Re:Re:답변 감사합니다. 제가 하려고 하는건
김민조 [] 1172 읽음    2010-03-26 10:07
skjoon님 답변감사드립니다.
어떤 식으로 설정해야 할 지 감이 잡히는 것 같아요.
디지털 시그널을 보낼려고 하는것이고 펌웨어 관련된 일을 시작한 지 얼마 안되서 아직 익숙치가 않아서요.
감사해요^^
skjoon 님이 쓰신 글 :
: 1바이트짜리 버퍼에 비트배열을 설정하는게 아니고
: 클럭 시그널 사이에 0 또는 1의 디지털 시그널을 내보내시려는건가요?
: (표현이 잘 되었는지 모르겠네요 ^^;;)
: 펌웨어 관련된 일을 하시는건가요?
: 잘은 모르지만 쉽게 생각해서 다음과 같이 하면 되지 않을까 하네요.
:
:
: bool Cond[8] = {1, 0, 0, 0, 0, 0, 1, 0}; // 조건을 나타내는 배열입니다.
: for(int i = 0; i < 8; i++) {
:     SCK_H_Signal();
:     if(Cond[i] == true)
:         AD0_H_Signal();
:     else
:         AD0_L_Signal();
:     SCK_L_Signal();
: }
: 
: SCK_H_Signal(); 
: SCS_H_Signal(); // 이건 마지막에 보내는 신호인가봐요? -.-;;
: SCK_L_Signal(); 
: 
: 

:
: 제가 문제에 대해서 잘 이해했는지 모르겠네요.. ^^
:
: 김민조 님이 쓰신 글 :
: : Instruction에서 레지스터를 셋팅 할 때 0100 0001을 써야 되는데.
: :
: : 이 때 문제가 각 값 사이사이에 클럭이 들어간다는 겁니다.
: :
: : 예를 들면
: :
: :            SCK_H_Signal();
: :
: :            AD0_L_Signal();
: :
: :            SCK_L_Signal();
: :
: : 
: :
: :            SCK_H_Signal();
: :
: :            AD0_H_Signal();
: :
: :            SCK_L_Signal();
: :
: : 
: :
: :            SCK_H_Signal();
: :
: :            AD0_L_Signal();
: :
: :            SCK_L_Signal();
: :
: : 
: :
: :            SCK_H_Signal();
: :
: :            AD0_L_Signal();
: :
: :            SCK_L_Signal();
: :
: : 
: :
: :            SCK_H_Signal();
: :
: :            AD0_L_Signal();
: :
: :            SCK_L_Signal();
: :
: : 
: :
: :            SCK_H_Signal();
: :
: :            AD0_L_Signal();
: :
: :            SCK_L_Signal();
: :
: : 
: :
: :            SCK_H_Signal();
: :
: :            AD0_L_Signal();
: :
: :            SCK_L_Signal();
: :
: : 
: :
: :            SCK_H_Signal();
: :
: :            AD0_H_Signal();
: :
: :            SCK_L_Signal();
: :
: : 
: :
: :            SCK_H_Signal();
: :
: :            SCS_H_Signal();
: :
: :            SCK_L_Signal();
: :
: : 
: :
: : 이런식으로요. 똑 같은 명령어가 들어가는것도 아니고 명령어 하나하나 쓸때마다 이런식으로 힘들기도 하고 여러모로
: : 비효율적인것 같아서 이렇게 질문드립니다.
: :
: :
: :
: :
: : skjoon 님이 쓰신 글 :
: : : 혹시 8개의 조건에 따라서 각 비트의 값을 설정하려는 것인가요?
: : :
: : : 그렇다면
: : :
: : : 조건1 true이면 0번째 비트 1, 아니면 0
: : : 조건2 true이면 1번째 비트 1, 아니면 0
: : : ...
: : :
: : : 이렇게 되겠네요.
: : :
: : :
: : : bool Cond[8] = {1, 0, 0, 0, 0, 0, 1, 0}; // 조건을 나타내는 배열입니다.
: : : BYTE result = 0x00;
: : : for(int i = 0; i < 8; i++) {
: : :     if(Cond[i] == true) {
: : :         result |= (0x01 << i);
: : :     }
: : : }
: : : // result에 원하는 값이 설정되었을 겁니다.
: : : 

: : :
: : : 김민조 님이 쓰신 글 :
: : : : for(i=0; i<8; i++)
: : : : //   ____비트연산____
: : : :
: : : :
: : : : ____비트연산____
: : : : for문을 돌았을때 비트가 0100 0001이 되게 하고 싶은데 어떤 식으로 하면 될까요?

+ -

관련 글 리스트
60602 for문으로 돌려서 비트연산하기 질문입니다. 김민조 1851 2010/03/26
60603     Re:for문으로 돌려서 비트연산하기 질문입니다. skjoon 1898 2010/03/26
60604         Re:Re:답변 감사합니다. 제가 하려고 하는건 김민조 1282 2010/03/26
60606             Re:Re:Re:답변 감사합니다. 제가 하려고 하는건 skjoon 1250 2010/03/26
60607                 Re:Re:Re:Re:답변 감사합니다. 제가 하려고 하는건 김민조 1172 2010/03/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.