회원가입 ID/PW 찾기
AA

Firmsys RFID Demo Kit와 atmaga128로 통신 연습중인데요

Tag에 기록된 hax값을 계속 더해서 총합을 LCD에 출력하는 시킬려구 하는데요

Tag 인식이랑은 잘 하는데 문제는 Tag 인식을 안시켰는데도 부저가 울리면서 쓰레기 값이 수신되네요...

그리고 total값이 32767 이상되면 -32767로 출력이 되는데요

데이터 타입을 바꾸어도 계속 같은 결과가 나옵니다 ㅠ.ㅠ

이 두가지 문제를 어떻게 해결해야 할지... 가르침 부탁드립니다.

 

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

// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x12 ;PORTD
#endasm
#include <lcd.h>

flash char SendData[5] = {0x05, 0x02, 0x20, 0x00, 0xff}; // Read single block 
unsigned char rfid_rx[7];

void Rs232_init(void)
{
    DDRE = 0xFE;
    UCSR0A = 0x00;
    UCSR0B = 0x18;
    UCSR0C = 0x06;     
    UBRR0H = 0;
    UBRR0L = 8;    
}

void Putch(char data)
{
   while(!(UCSR0A & 0x20));
    UDR0 = data;
}  

void USART_SendData(void) //명령어 코드를 보내는 함수
{
    int i;
    for(i=0; i<5; i++)                                    
        Putch(SendData[i]);  
}
 
char Getch(void)
{
    while(!(UCSR0A & 0x80));  
    return UDR0;
}

void LCD_port()
{
    PORTA=0xff;
    DDRA=0xFF;
    PORTB=0x00;
    DDRB=0xFF;
    PORTD=0x00;
    DDRD=0xff;
    ACSR=0x80;
}

void main(void)
{      
    int i, j;         
    unsigned int value, won, total;
    unsigned char line1[10], line2[10]; 
     
       
    Rs232_init();
    LCD_port();
    lcd_init(16);    // LCD module initialization

    while (1)
    {
        USART_SendData();  
        // Read single block 입력   

        for(i=0;i<7;i++)
        {
            rfid_rx[i]=Getch();
            if(rfid_rx[i]==0xff)
                break;     
        }              
        if(rfid_rx[0] == 7)                     // Tag Read
        {                
            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;
            sprintf(line1, "%d", won);
        }       
        else if(rfid_rx[0] == 5 || rfid_rx[0] == 0xff )   
        {
            won = 0;
            sprintf(line1, "%d", won);
        }
        value = 0;
                
        sprintf(line2, "%d", total);

        lcd_clear();   
        lcd_gotoxy(0,0);
        lcd_puts(line1);
        lcd_gotoxy(0,1);
        lcd_putsf("Total : ");
        lcd_gotoxy(8,1);       
        lcd_puts(line2);
        delay_ms(300); 
       
    }
}

댓글 1
  • No Profile
     for(i=0;i<7;i++)
            {
                rfid_rx[i]=Getch();
                if(rfid_rx[i]==0xff)
                    break;     
            }              


    여기서 0xff가 들어오면 데이터 받기 끝인가요?






     if(rfid_rx[0] == 7)                     // Tag Read
            {                
                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;
                sprintf(line1, "%d", won);
            }       
            else if(rfid_rx[0] == 5 || rfid_rx[0] == 0xff )   
            {
                won = 0;
                sprintf(line1, "%d", won);
            }else{

    // 쓰레기값 일때 처리
         }



    이 구문에서 else{}를 추가해서 쓰레기 값을 처리하면 될듯하네요.

하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
         PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.

search
번호 분류 제목 글쓴이 조회 수 날짜
75 중고장터 HOTAVR JTAGICE MK2 에뮬레이터 팝니다. bluewing 5043 2010.10.06
74 중고장터 HOTARM 개발보드 마이크로비젼 MV2440-LCD 팝니다. bluewing 4215 2010.10.06
73 중고장터 HOT뉴코란도 구합니다.11 설록맨 3177 2010.10.05
72 중고장터 HOTUSB HUB IC판매 Newface 3483 2010.09.24
71 중고장터 HOT삼성 3.5인치 TFT-LCD (Touch 포함) 싸게 드려요. 삼성 3.5인치 TFT-LCD (Touch 포함) 싸게 드려요. 삼성 3.5인치 TFT-LCD (Touch 포함) 싸게 드려요.1 띵요루슛 4350 2010.09.17
70 중고장터 HOT오실로스코프 싸게 사고 싶어요~7 야웅이 3263 2010.09.13
69 중고장터 HOTSTR-6253 판매합니다.2 행국강기 3918 2010.09.07
68 중고장터 HOTnewtc꺼 AVR MEGA 128pro 개발키트(풀셋) 구합니다. 어쩌다 3237 2010.08.21
67 중고장터 HOTD&J DC모터 3개 판매 로봇용적합 IGM30 12V 엔코더 타입1 아크마 6589 2009.01.11
66 중고장터 HOTCMOS 카메라 OV9650 판매1 아크마 3757 2010.07.28
65 중고장터 HOT삼성 3.5인치 TFT-LCD (Touch 포함) 싸게 드려요.2 용가리3 3289 2010.07.17
64 중고장터 HOTmicrochip 사 ac motror controller demo board 이단장 3377 2010.06.17
63 중고장터 HOT각종 부품 팝니다. 캐리안 3652 2010.06.10
62 중고장터 HOT기울기센서 (TILT SA1) 팝니다 폴라리스 4196 2010.06.05
61 중고장터 HOT중고 서적구해요..^^13 로이lee 4169 2010.05.26
60 중고장터 HOT컴퓨터 사요2 제갈공ㅇㅇ 3862 2010.05.24
59 중고장터 HOT소리인식센서 구합니다!1 재럴 3665 2010.05.22
58 중고장터 HOTHELICOMM 사의 IP-LINK 2134- 2264 모듈 구매합니다. 아크마 4120 2010.05.20
57 중고장터 HOT터치 lcd안쓰시는거 구입합니다1 duziny 3887 2010.05.13
56 중고장터 HOT어셈블리어 교재 구합니다~1 배개 3710 2010.04.28
  • 등불은 바람 앞에 흔들리는 인간의 마음과 같다.
    - 팔만대장경
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.