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이 되게 하고 싶은데 어떤 식으로 하면 될까요?
|