반응형
위에대가 냅다
;TESTFLAG1 bit define
C1GEARF EQU .0
C2GEARF EQU .1
BUZZ1ST EQU .2
BUZZ2ND EQU .3
이렇게 선언해 놓은것을 봤습니다.
EQU가 c로 바꾸면 #define이라기에 #define C1GEARF 까지 자신있게 적었는데
그 다음이 참 난감하더군요. '.0'
0 앞에있는 . 쩜은 도대체 뭘까요?
0,0이라는건지, 0이라는건지 0번 비트라는건지 ..........
이 문제의 쩜은 계속해서 절 괴롭힙니다.
소스 밑을 좀 보고 있으면
MOVLW .250 이라는것이 또 등장합니다. 250이면 250이지 .250은 뭘까. 0.250?
MOVLW (.2600/.32) 이런 황당한 것도 있습니다. 이건 또 웬 나누기가 들어가서 ......
어셈은 절 자꾸 당혹스럽게 만듭니다 .. 이거 c로 어떻게 컨버젼해요 ㅠㅠ 단순한것도 헤매고 있는데;
이거 어떻게 해야할까요......
반응형
'Study > uCom' 카테고리의 다른 글
[asm] [질문] MOVLW, SUBWF (1) | 2009.06.03 |
---|---|
[asm] [질문] EQU .0 은 뭘 의미하는걸까? (11) | 2009.05.29 |
[PIC초보] [질문] 컴파일 에러 대체 왜나? (0) | 2009.05.28 |
[PIC초보] [질문] BANK가 뭔데? (6) | 2009.05.27 |
댓글을 달아 주세요
제가 아는 분야가 아니니 페스~^^
알수 있겠죠? 왜그런지? ㅠㅠ
비밀댓글입니다
흐흐 +ㅅ+ 저도 !
감사합니다 ~
EQU의 0번 비트라는 뜻입니다.
EQU가 8bit라면, 0~7까지의 비트를 가지겠지요.
Flag bit define 라고 써있는게 보이시죠?
우선 Flag가 뭔지, 왜쓰는지 아셔야 합니다.
저는 CCS-C를 사용했기 때문에 다른 컴파일러는 모르겠지만,
컴파일러 도움말이 잘 돼있다면, 모든게 아주 잘 설명되어 있을겁니다.
int8 지금_내_상태;
#bit 배고파 = 지금_내_상태.7
#bit 춥고나 = 지금_내_상태.6
#bit 외로워 = 지금_내_상태.5
#bit 화가나 = 지금_내_상태.4
CCS-C는 이런식으로 비트를 선언 합니다.
지금_내_상태 = 0;
화가나 = 1;
// 이러면, "지금_내_상태" 는 "8"이 되겠죠.
만약 #define를 쓰고싶다면, 이렇게 합니다.
int8 지금_나의_상태;
#define 배고파 지금_나의_상태, 7
#define 춥고나 지금_나의_상태, 6
#define 외로워 지금_나의_상태, 5
#define 화가나 지금_나의_상태, 4
여기선 콤마(,)를 사용했는데요.
CCS-C에 아래와 같은 내장함수가 있기 때문입니다.
bit_set(지금_나의_상태, 4); // 이러면 화가 난거죠.
bit_set(화가나); // 이것도 같은 거죠.
이걸 직접 만들어 쓸 수도 있는데요.
#define bit_set(X,bit) (X |= (1<<bit)) // 이런식입니다.
"#define"문을 형식을 꼭 맞춰 주어야 합니다.
bit_set(화가나); 이렇게 쓰면 콤마가 없다고 뭐라 할겁니다.
#define flag_set(X) bit_set(X)
flag_set(화가나);
이렇게 한다리 더 거치면 가능합니다.
좀 복잡하죠. 저도 힘들에 알아냈어요. ㅋㅋ
고장난우주선님 친절한 설명 감사드립니다 ^^
힘들게 알아내신 소중한 노하우를 !!!!!!
저는 HI-TECH C 컴파일러를 사용해서
asm->c로 바꾸고 있어요 ㅎㅎ
근데
==================================
지금_내_상태 = 0;
화가나 = 1;
==================================
여기에서
"지금_내_상태" 가 왜 "8"이 되는 지 이해가 잘 안됩니다 ^^;
화가나 비트는 4번비트고
그럼 0001 0000 이란 뜻 아닌가요?
맞네요. 16이군요.
저는 늘 이런 실수때문에 버그찾느라 고생을 하죠.
헤헤 =ㅅ=
저도 늘 하나 잘못써서 안되는걸 하루종일 찾고 있답니다 ;
그런데 bit set 말고
MOVLW .250
MOVLW (.2600/.32)과 같은 것은 어떤 뜻인지 여쭤봐도 될까요? ;;
아항?:: 저런 신기해 보이는 녀석은 몰까요~ 도망.. ㅋㅋ
아하하; 수우님 도망가지마시어요 =ㅠ=
쩜에의미는 십진수라는뜻입니다.
16진수로나타낼때는 0xf2 이런식이고요
2진수로나타낼때는 b'11111110 '이런식으로쓰입니다
공지사항
카테고리
태그목록