질문게시판 > 답변 : atmega128 uart 255이상 수입력

인기검색어 > 아두이노 센서 ATMEGA128

최신글 질문게시판 동영상강좌 가입하기

▼ BASIC4MCU 후원업체 신제품 정보 ▼

▲ BASIC4MCU 후원업체 신제품 정보 ▲

BASIC4MCU > 질문게시판

답변 : atmega128 uart 255이상 수입력

페이지 정보

작성자 master 작성일18-12-16 15:45 조회5,644회 댓글0건

본문

 

// DateTime : 2018-12-16 오후 3:38:34
// by Ok-Hyun Park
//
#include <mega128.h>
#include <delay.h>
//
char FND[]={0x3F,0X06,0X5B,0X4F,0X66,0X6D,0X7d,0X07,0X7F,0X6f}; // 0~9
bit flag=0;
unsigned int tp=0,val=0;
//
void TX0_char(char c){ while(!(UCSR0A&0x20)); UDR0=c; }
void TX0_STR(char *s){ while(*s)TX0_char(*s++); }
//
interrupt[USART0_RXC]void INT_RX(){
  char r;
  r=UDR0;
  UDR0=r;
  //
  if(r=='\n'){
    val=tp// val에 값을 저장하고
    tp=0;   // 초기화
    flag=1// 입력 완료 되었음을 알려줌
  }
  else if((r>='0')&&(r<='9')){
    tp%=1000;   // 천의 자리를 삭제하고
    tp*=10;     // 10을 곱해준 후
    tp+=r&0x0F// 1의 자리를 더해줌
  }
}
//
void main(){
  unsigned char d1=0,d2=0,d3=0,d4=0;
  DDRA=0xffDDRC=0xff;
  UCSR0B=0x98UBRR0L=103;
  SREG=0x80;
  while(1){
    if(flag){ flag=0
      d1=val/1000;
      d2=val/100%10;
      d3=val/10%10;
      d4=val%10;
    }
    //
    PORTC=~1PORTA=FND[d1]; delay_ms(1);
    PORTC=~2PORTA=FND[d2]; delay_ms(1);
    PORTC=~4PORTA=FND[d3]; delay_ms(1);
    PORTC=~8PORTA=FND[d4]; delay_ms(1);
  }
}

 

여러 바이트 전송은 쉽지 않습니다.

포멧을 정해서 주고 받아야하죠

여러가지 방법이 있습니다만 아래에 한 가지 더 알려드리죠

 

 

// DateTime : 2018-12-16 오후 3:50:58
// by Ok-Hyun Park
//
#include <mega128.h>
#include <delay.h>
//
char FND[]={0x3F,0X06,0X5B,0X4F,0X66,0X6D,0X7d,0X07,0X7F,0X6f}; // 0~9
unsigned int tp=0,val=0;
char rx_cnt=0,rx_buf[100];
char d[4];
//
void TX0_char(char c){ while(!(UCSR0A&0x20)); UDR0=c; }
void TX0_STR(char *s){ while(*s)TX0_char(*s++); }
//
interrupt[USART0_RXC]void INT_RX(){
  char r,i
  r=UDR0;
  UDR0=r;
  //
  if(r=='\n'){
    for(i=0;i<4;i++)d[i]=0// clear
    rx_cnt--;
    for(i=3;i>=0;i--){
      d[i]=rx_buf[rx_cnt]&0x0F;
      rx_cnt--;
      if(rx_cnt<0)break// 수신갯수가 작으면 빠져나감
    }
    rx_cnt=0// 초기화
  }
  else if((r>='0')&&(r<='9')){
    rx_buf[rx_cnt++]=r;
  }
}
//
void main(){
  DDRA=0xffDDRC=0xff;
  UCSR0B=0x98UBRR0L=103;
  SREG=0x80;
  while(1){
    PORTC=~1PORTA=FND[d[0]]; delay_ms(1);
    PORTC=~2PORTA=FND[d[1]]; delay_ms(1);
    PORTC=~4PORTA=FND[d[2]]; delay_ms(1);
    PORTC=~8PORTA=FND[d[3]]; delay_ms(1);
  }
}

 

 

 

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기
  • 카카오톡으로 보내기

댓글 : 0

조회수 : 5,644

등록된 댓글이 없습니다.

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[28] master  17-10-29
질문 압력센서에 따른 진동모터를 버튼으로 제어 회로도 질문 도와주세용용 새글 11:53
질문 아두이노 리니어 제어 모듈 설계중입니다. 도와주세요 갓비타 새글 23-06-06
답변 답변 : 아두이노 리니어 제어 모듈 설계중입니다. 도와… master 새글 11:51
질문 dc모터 제어 관련 질문 드려요 ㅠㅠ!! 댓글[2] dpwl 새글 23-06-06
답변 답변 : dc모터 제어 관련 질문 드려요 ㅠㅠ!! master 새글 11:40
질문 pixy2 cam 을 이용한 색상인식 모터 제어 댓글[1] 가나다라  23-06-05
질문 안녕하세요 제품 품목 이름에 대해서 궁금합니다. 첨부파일알려주시면감사합니다  23-06-05
질문 Atmega128 온도센서로 led제어 질문드려요 댓글[1] 첨부파일얍얍  23-06-05
질문 아구이노 코드를 atmega 128 코드로 변환 하고 … 댓글[1] 기로롱  23-06-05
질문 atmega128 uart 질문입니다. 댓글[1] bme12  23-06-05
질문 라즈베리파이에 풀 프레임 이미지센서 활용에 대한 질문이… 댓글[1] 첨부파일KYLO  23-06-04
질문 아두이노 시리얼 번호를 이용해 led 제어 wnion  23-06-04
답변 답변 : 아두이노 시리얼 번호를 이용해 led 제어 master 새글 10:14
질문 ATMEGA128 혹시 여기서 왜 인터럽트 기능이 안되… 댓글[1] IEEE  23-06-04
질문 stm32f767을 이용해서 자이로가속도 센서의 값 받… 댓글[1] rlchwjswk  23-06-03
질문 아두이노 모터제어 관련해서 질문드립니다! 댓글[1] 첨부파일아두이노어렵잖아  23-06-03
질문 atmega128 디지털조도센서 코드오류 댓글[1] 까미  23-06-02
질문 atmega128 디지털 조도 센서 댓글[1] 까미  23-06-02
질문 적외선리모콘으로 부저를제어 하는방법 질문입니다. 댓글[4] Tell  23-06-02
질문 lora 무선 모듈에 관한 질문입니다. 댓글[1] 로이스10  23-06-01
질문 적외선 송수신기 DC모터2개 제어 질문입니다. 댓글[5] Tell  23-06-01
질문 스텝모터 제어 코드 질문 댓글[6] pmh11  23-05-31
질문 초음파 센서를 이용한 인원 카운팅 댓글[1] 초음파야  23-05-31
질문 모터 Hall 스위치 연결 문의 댓글[1] 오후  23-05-31
질문 아두이노 lcd 문자 스크롤디스플레이 wnion  23-05-31
답변 답변 : 아두이노 lcd 문자 스크롤디스플레이 댓글[1] master  23-05-31
질문 아두이노 타이머 인터럽트 미ㅏㄴㅇ  23-05-30
답변 답변 : 아두이노 타이머 인터럽트 댓글[8] master  23-05-30
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전