디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

횽들 혹시 RFID랑 코드비전쪽 잘하는횽 있어?

최어른갤로그로 이동합니다. 2011.09.05 17:36:19
조회 672 추천 0 댓글 3

졸업작품중인데 진짜 와 이것만 하면 끝인데

여기서 정말 안나가네

도움 좀 줄 횽 없나여

이거 해결하면 사례도 해줄게....

문제는 RFID로 Tag를 인식하긴 하는데

Tag를 구분을 못해 ㅠㅠㅠㅠㅠㅠ 뭐가 문제인걸까?

RFID는 펌시스꺼 RFID Demo Kit II야

#include <mega128.h>
#include <stdio.h>
#include <math.h>

       
char tag1[12]={0x0C,0x00,0x00,0x93,0xA0,0x61,0x1C,0x00,0x01,0x04,0xE0,0xFF};
char tag2[12]={0x0C,0x00,0x00,0x2E,0xDF,0xA8,0x4B,0x00,0x01,0x04,0xE0,0xFF};
char tag3[12]={0x0C,0x00,0x00,0xFC,0xA5,0xA8,0x4B,0x00,0x01,0x04,0xE0,0xFF};
//char arr1[5]={0x05,0x26,0x01,0x00,0xFF};  
char arr1[5] = {0x05, 0x02, 0x20, 0x1b, 0xff}; 
void init_SERIAL0(void);
void init_SERIAL1(void);    
//char H2hex[]={\'0\',\'1\',\'2\',\'3\',\'4\',\'5\',\'6\',\'7\',\'8\',\'9\',\'A\',\'B\',\'C\',\'D\',\'E\',\'F\'};
//char L2hex[]={\'0\',\'1\',\'2\',\'3\',\'4\',\'5\',\'6\',\'7\',\'8\',\'9\',\'a\',\'b\',\'c\',\'d\',\'e\',\'f\'};
char   test_val  ;
char save_buff[7];
int ys;
int cnt;       
int i;
int save_f;  
int j;         
unsigned int value, won, total;
 
char hex[]="0123456789ABCDEF"; 
unsigned char put = \'1\';
       
void putch0(unsigned char data);             
       
       
interrupt [TIM0_OVF] void time0(void);
//interrupt [USART1_RXC] void usart1_rx_isr(void);
int selectedSeg;   

//void TX0_CHAR(char Sdata) {while(!(UCSR1A&0x20)); UDR1=Sdata; }
//char RX0_CHAR(void){ while(!(UCSR1A&0x80)); return UDR1; } // 수신함수
       
void putch_RF(unsigned char data){        // RFID
        while(!(UCSR1A & 0x20));
        UDR1 = data;        
        UCSR1A |= 0x20;
}
char getch_RF(void){                      // RFID
        while(!(UCSR1A & 0x80));
        return UDR1;
}
       
void putch0(unsigned char data){          // 블루투스
        while(!(UCSR0A & 0x20));
        UDR0 = data;      
        UCSR0A |= 0x20;
}
           
char getch0(void){                        // 블루투스
        while(!(UCSR0A & 0x80));
        return UDR0;
}
         
      
void USART_SendData(void){
        char i;         

              
        for (i=0;i<5;i++)
                putch_RF(arr1[i]);   
        put=getch_RF();      // 이 부분이 꼭 필요함!!! 출력 해 보면  W 가 출력됨

}
       
/*
interrupt [USART1_RXC] void usart1_rx_isr(void){       // 수신 인터럽트
        char rd;
        rd=UDR1;
        putch_RF(H2hex[rd>>4]);
        putch_RF(L2hex[rd&0x0F]);
}
*/
/*  /////////요걸 주석처리 해도 프로그램이 잘 돌아간다 무슨 이유일까 필요없는건가..ㅠ            
interrupt [USART1_RXC] void usart1_rx_isr(void){           // RFID 수신 인터럽트
        unsigned char data;   
        //RX0_CHAR();
        // USART_SendData();
        data=UDR1;  
        //TX0_CHAR(hex[data>>0x04]);
        //TX0_CHAR(hex[data &0x0F]);
        putch_RF(hex[data>>0x04]);
        putch_RF(hex[data &0x0F]);
       
}*/
       
       
void init_SERIAL0(void){
        DDRE = 0xff; 
        // 블루투스로 확인할 때는 블루투스 꽂아서 사용하고
        // 하이퍼터미널로 확인할 때는 하이퍼 터미널 꽂아서 사용
        // 각각 주석 처리로 사용 가능 하이퍼 터미널은 11500??사용
        // UCSR0A=0x00;   UCSR0B=0x18;  UCSR0C=0x06; UBRR0H=0x00;  UBRR0L=0x67; //블루투스
         UCSR0A=0; UCSR0B=0x18; UCSR0C=6; UBRR0H=0; UBRR0L= 8; //하이퍼터미널
       
}                                 
       
void init_SERIAL1(void){
        DDRE=2;
        UCSR1A=0; 
        UCSR1B=0x18;
        UCSR1C=6;
        UBRR1H=0;
        UBRR1L=25;
}
       
       
       
interrupt [TIM0_OVF] void time0(void){      //블루투스 수신 인터럽트
        TCNT0 = 0x06;
       
        if(selectedSeg == 4)
                selectedSeg = 0;
        selectedSeg++;
}

/* ////////////////요것두 지웠는데 잘 됨 ㅠㅠ          
void RFID_Wait(void){
        int i;   
        char data;
        for(i=0;i<5;i++){
                // putch0(TX0_CHAR(arr1[i]));       
                // putch0(putch_RF(arr1[i])); //최근?
       
        }
              
}        
*/
                  
void _delay_ms(unsigned int ms){
        unsigned int i;
        while(ms--){
                i=2727;
                while(i--);
        }
}
       
void main(){
       
        init_SERIAL0();
        init_SERIAL1(); 
        DDRA=0xFF;
        DDRF=0xFF;
        DDRB=0xFF; 

        /*
        while(1){
                // RFID_Wait();
                _delay_ms(1000);  
                USART_SendData();                                         
        }
        */
     
        while (1) {           
                // if(SW1 == 0) { //스위치 눌렀을때 명령어 보냄 
                        // while(SW1 == 0);  
                        // _delay_ms(500);
                        USART_SendData();
                        /*for (i=0;i<5;i++)
                                putch_RF(arr1[i]); */    
                        test_val = getch_RF();
                // }               
               
                if(test_val == 0x07) {  // Read single block 데이터 첫자리 확인
                                        // 카드가 인식되면 이 쪽으로 들어와서 처리
                        save_buff[0] = 0x07;
                        cnt = 1;
                        save_f = 1;    
                       
                            
                } else if(test_val == 0x05) {   // Error 일때
                                                // 카드를 대고 있지 않을 때 이 쪽으로 들어와서 처리
                        save_buff[0] = 0x05;  
                        cnt = 3;
                        save_f = 1;
                       
                }

                if(save_f == 1) { // 데이터 받아서 저장, 표시
                        test_val = getch_RF();                
                        save_buff[cnt++] = test_val;           
                        if(save_buff[0] != 0x05 && cnt >= 3 && cnt <= 6) {
                                if(cnt == 3) { // 한번만 출력 

                                        //여기에서 출력을 함
                                        //putch0(ys); //오케이!!!!!!!!!!  
                                       
                                        //내 생각에는 getch_RF()에서 받아오는 값이 태그값 같은데
                                        //test_val의 값이 뭔지 알면 if문으로 만약에 값이 0x02이면 putch0()으로 2를 출력하면 될것 같아
                                        //지금은 putch0()으로는 한 자리 밖에 출력이 안되는데 getch_RF()값이 아마 00 00 00 00 02 이런식이라서
                                        //출력도 안되는 거 같고 ㅠㅠ
                                        /*for(i=2, j=6; i<6; i++, j-=2)
                                        {
                                                value = rfid_rx[i]*pow(16,j);   // Read single block을 10진화
                                                won += value;
                                        }
                                        total += won;*/
                                        //이런식으로 10진화 하는 방법이 있던데 당근이에서
                                        //"RFID와 Atmaga128 통신좀 봐주세요~"라고 치면 블루마린이 작성한 글에 있는 내용이야

                                       
                                        putch0(\'2\');
                                       
                                }
   
                                //  sprintf(lcd_buff, "%02x ", test_val);
                                //  lcd_puts(lcd_buff);
                        } else if(save_buff[0] == 0x05) {   
                                //putch0(\'1\'); //에러났을 때

                        }           

                        if(cnt >= 7) { // 초기화
                                cnt = 0;
                                save_f = 0;         
                                test_val = 0;
   
                                //putch0(save_buff[5]);
     
                                _delay_ms(100);
       
                                //  lcd_clear();
                                //  lcd_gotoxy(0 ,0);
                                //
                                //   lcd_putsf("RFID Test");
                        }
                }

        }
}

 

// 카드를 가져다 대면 삐 소리와 함께 빨간 불이 깜빡임
// 하이퍼 터미널에서 확인 하였을 때 인식되면 getch_RF의 값과 0이 출력
// getch_RF값을 putch0로 출력하지 않으면 RFID가 동작하지 않음

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 이번주 설문은 탈모 걱정 없어 보이는 머리숱 금수저 스타는? 운영자 25/07/14 - -
AD 디지털 액세서리 기간한정 세일! 운영자 25/07/11 - -
271267 프로그래머에대한 자부심을 갖고있나요? [4] 박구갤로그로 이동합니다. 11.09.10 109 0
271266 컴똘똘이 어그로 글 어디갓냐 [3] 로하로하알로하갤로그로 이동합니다. 11.09.10 50 0
271265 프겔러들은 이런생각안해봤음? 나는 자주생각하는데 [1] 131313(223.222) 11.09.10 38 0
271264 형님들 진짜 조언좀 해주세여!!! [5] 광주지라(121.137) 11.09.10 57 0
271262 한국의 실리콘벨리없음? 동생들이랑 같이 해보고싶은데 [1] 131313(223.222) 11.09.10 49 0
271261 포탈해라 두번 해라 [2] y녀6디리(220.118) 11.09.10 65 0
271258 명절에 공부이야기들 하지말고 뭐 먹었나 말해봅시다 [6] dot(114.202) 11.09.10 61 0
271257 강철의 연금술가 처럼 마법진 그리고 뭐 막 생기고 그러는 학문있었으면 좋 [3] 131313(223.222) 11.09.10 30 0
271254 군대 전역하고 공부하기 바뻐질떄 부터 친구들하고 슬슬멀어지던데 [4] 131313(223.222) 11.09.10 125 0
271253 공부가 필요없는 직업 [3] SuCo갤로그로 이동합니다. 11.09.10 452 0
271251 아무리 생각하고 검색해봐도 모르겠는데 이것좀 갈쳐줘 형 [4] 독담갤로그로 이동합니다. 11.09.10 89 0
271250 한영의 기초영문법부터 시작해라 쉑이드라. [2] 쵸쵸쵸(219.251) 11.09.10 105 0
271249 솔직히 공부안하고 사는 방법 있음? [3] 131313(223.222) 11.09.10 95 0
271248 역시 프로그래머는 지식인였어 [2] 131313(223.222) 11.09.10 117 0
271247 다른걸 다 떠나서 공학하는 사람들한테 영어는 무척 중요하다. [4] 생각놀이갤로그로 이동합니다. 11.09.10 116 0
271246 영어 말하기 듣기 능력 다필요없다. 독해능력에만 집중하라. 노예들이여 [2] 쵸쵸쵸(219.251) 11.09.10 98 0
271245 걍 MSDN 해석가능할정도면 되지 않으려나? [2] SuCo갤로그로 이동합니다. 11.09.10 105 0
271244 니들은 스스로 니들이 대단하다고 착각하는가보지? [2] 쵸쵸쵸(219.251) 11.09.10 98 0
271241 마크주어버그 페이스북 대장 님들이 봤을떄 컴퓨터에 전바적으로 엄청난 [8] 131313(223.222) 11.09.10 138 0
271240 토익점수 높으면 개발자한테 매우 유익하다. [3] 쵸쵸쵸(219.251) 11.09.10 180 0
271239 저는 지금 토익 치면 300점 나올듯 [1] [성대아싸]갤로그로 이동합니다. 11.09.10 120 0
271236 만약에 컴돌이로 취직하다면 [2] 131313(223.222) 11.09.10 95 0
271235 컴돌아 3얼간이라는 영화 꼭 봐라 두번봐라.. [7] 쿄스케갤로그로 이동합니다. 11.09.10 91 0
271234 컴퓨터 본좌 성님들... Unix에서 C언어를 하려 하는데 [1] (175.120) 11.09.10 76 0
271231 훃들아 실직적으로 대기업같은곳은 학벌 토익점수 만 무조건봅니까? [2] 131313(223.222) 11.09.10 134 0
271230 컴돌이 오늘 프갤어그로 지대로 잡았다잉 [1] ㅂㄷㅂ(203.170) 11.09.10 130 0
271229 형들은 하드웨어 제어 할줄알음? [9] 131313(223.222) 11.09.10 139 0
271228 컴돌이는 걍 어그로 끌려고 저러는 걸까 진짜 저런식으로 생각하는 걸까.. [4] 쿄스케갤로그로 이동합니다. 11.09.10 111 0
271227 컴돌이가 공비의 토익점수를 잡고 늘어지기 시작했다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ [8] ㄹㄹㄹ(203.170) 11.09.10 194 0
271226 컴돌부처야 봐봐 로하로하알로하갤로그로 이동합니다. 11.09.10 58 0
271224 아.. 영화 대사나 애니 대사로 자막 검색하는거 요긴할줄 알앗는데.. [2] 점술가2갤로그로 이동합니다. 11.09.10 74 0
271223 아이폰 앱 개발을 위해서 Objective-C 공부 중.. 으아내려간다갤로그로 이동합니다. 11.09.10 77 0
271222 c언어 질문좀할께 횽들 뭐가 잘못된지 모르겟네... [7] 호롤룰루(122.45) 11.09.10 143 0
271221 인서울 토익 610인데 지방대생들이 더 잘하네... [14] 컴돌이(180.227) 11.09.10 335 0
271219 너네들 진짜 토익이 영어 실력이라 생각하냐; [1] 로하로하알로하갤로그로 이동합니다. 11.09.10 106 0
271218 크롬 아이콘 종결자 [5] 물리왕호킹갤로그로 이동합니다. 11.09.10 238 0
271217 횽들 [1] stdlib.h갤로그로 이동합니다. 11.09.10 72 0
271216 야 ㅅㅂ 스프링에서 세션할당 어케하냐. 쵸쵸쵸(219.251) 11.09.10 88 0
271215 짤몇개 [9] 교복여중고딩갤로그로 이동합니다. 11.09.10 149 0
271214 CSS를 만들려는데 폰트말야 [18] 교복여중고딩갤로그로 이동합니다. 11.09.10 171 0
271213 그럼 C언어책 하나만 추천해줘요.. [9] 안초심갤로그로 이동합니다. 11.09.10 129 0
271212 하루 쉬는날 쳐놀려고 하니까 도저히 존나 피곤해서 안되겠다 [1] Adelposs갤로그로 이동합니다. 11.09.10 71 0
271211 정보보안전문가는 C언어만 하면되지...? [17] 안초심갤로그로 이동합니다. 11.09.10 238 0
271209 형들 ; 더블릿에서 코드사이즈 39 이런건 어케하는거야? [5] ㅋㅋ(218.37) 11.09.10 109 0
271208 아니 명절에 야근해주면 휴일근무수당+야근수당+특근수당까지 쵸쵸쵸(219.251) 11.09.10 83 0
271207 미친 싸가지 없는 동생년 [11] Adelposs갤로그로 이동합니다. 11.09.10 191 0
271206 미췬회사 다니는쉑이들은 레알 이타적인듯 쵸쵸쵸(219.251) 11.09.10 48 0
271205 미친놈들 존나 영어잘하겠네 [1] Adelposs갤로그로 이동합니다. 11.09.10 113 0
271204 자살춤 보아라. [6] 천재해커(59.14) 11.09.10 137 0
271202 30살이 넘어서도 자기 사업을 못하면 무능력 인증 아니냐 ㅋㅋㅋ [1] 쵸쵸쵸(219.251) 11.09.10 122 0
뉴스 민니, 감각적인 여름 일상 공개...“여름과 찰떡” 디시트렌드 07.14
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2