전기과 졸작중인데 진짜 C프로그래밍때문에 진도가안나감

C언어 기본지식도 없는상태라 진짜 몇주째 해매고있다

댓글로 이메일남겨주면 연락할께 크게는못해도 사례는할게 문상같은걸루

RFID 리더기이용하여 상품가격 텍스트로 출력하는거고 간단한거라 C언어공부좀하신분들이라면 쉽게 해석할수 있을꺼다

댓글로 이메일좀 남겨줘 ㅠㅠ 진짜도움청할곳이 여기밖에없다



void set_UART(void); //통신포트설정
void RFID_WRITE(void); // 정보 보내기
void RFID_READ(void); // 정보받기

while(1)
{
RFID_WRITE(); // 정보보내기
RFID_READ(); // 정보받기
if(SUM_4==0x46) // 0x46 정보가 오면 무한반복
{
  OPEN(); // 맞으면 열림
  delay_ms(2000);
  CLOSE(); // 닫힘
}
SUM_4=0x00; //초기화

void set_DDR(void)
{
 DDR?=0xFF;
}

void set_UART(void)
{
 UCSR0A = 0x00;
 UCSR0B = 0x18;
 UCSR0C = 0x86;
 UBRR0H = 103 >> 8; // 103 통신속도 9600.16M
 UBRR0L = 103 & 255;
 UCSR1A = 0x00;
 UCSR1B = 0x18;
 UCSR1C = 0x86;
 UBRR1H = 103 >> 8;
 UBRR1L = 103 & 255;
}

void RFID_WRITE(void)
{
 while(!(UCSR1A & 0x20)); UDR1 = 0x05; // 1번에서 5번의 신호를 받음
 while(!(UCSR1A & 0x20)); UDR1 = 0x26;
 while(!(UCSR1A & 0x20)); UDR1 = 0x01;
 while(!(UCSR1A & 0x20)); UDR1 = 0x00;
 while(!(UCSR1A & 0x20)); UDR1 = 0xFF;
}

void RFID_READ(void)
{
 while(!(UCSR1A & 0x80)); SUM_R = UDR1; //2번에 받음
 if(SUM_R==0x0C)
 {
  while(!(UCSR1A & 0x80)); SUM_R = UDR1;
  while(!(UCSR1A & 0x80)); SUM_R = UDR1;
  while(!(UCSR1A & 0x80)); SUM_R = UDR1;
  while(!(UCSR1A & 0x80)); SUM_4 = UDR1;
  while(!(UCSR1A & 0x80)); SUM_R = UDR1;
  while(!(UCSR1A & 0x80)); SUM_R = UDR1;
  while(!(UCSR1A & 0x80)); SUM_R = UDR1;
  while(!(UCSR1A & 0x80)); SUM_R = UDR1;
  while(!(UCSR1A & 0x80)); SUM_R = UDR1;
  while(!(UCSR1A & 0x80)); SUM_R = UDR1;
  while(!(UCSR1A & 0x80)); SUM_R = UDR1;
 }
 if(SUM_R==0x05)
 {
  while(!(UCSR1A & 0x80)); SUM_R = UDR1; // 3번째
  while(!(UCSR1A & 0x80)); SUM_R = UDR1;
  while(!(UCSR1A & 0x80)); SUM_R = UDR1;
  while(!(UCSR1A & 0x80)); SUM_R = UDR1;
 }
}