BASIC4MCU | 질문게시판 | atmega128 uart 255이상 수입력
페이지 정보
작성자 weaszx 작성일2018-12-16 13:51 조회7,326회 댓글0건본문
#include <mega128.h>
#include <delay.h>
unsigned char ch;
interrupt [USART0_RXC] void INT_RX()
{
ch=UDR0;
UCSR0B |= 0x20; // UDRIE=1 ,전송 데이터 빔 인터럽트 En
}
interrupt [USART0_DRE] void INT_UDRE()
{
UDR0=ch;
UCSR0B &=0xdf; // UDRIE=0
}void main()
{
unsigned char FND[]={0x3F,0X06,0X5B,0X4F,0X66,0X6D,0X7d,0X07,0X7F,0X6f}; // 0~9
unsigned char mem=0;
unsigned char mem2=0;
DDRA=0xff;
DDRC=0xff;
UCSR0A=0x00;
UCSR0B=0x98;
UCSR0C=0x86;
UBRR0H=0;
UBRR0L=103; //
SREG=0x80;
while(1)
{
if(ch=='+')
{
ch=0;
mem2=mem;
}
if(ch=='=')
{
delay_ms(10);
ch=mem2+mem;
}
mem=ch;
PORTC=0x0e;
PORTA=FND[ch/1000]; // 1000의 자리
delay_ms(10);
PORTC=0x0d;
PORTA=FND[(ch%1000)/100] ; // 100의 자리
delay_ms(10);
PORTC=0x0b;
PORTA=FND[((ch%1000)%100)/10]; //10의 자리
delay_ms(10);
PORTC=0x07;
PORTA=FND[((ch%1000)%100)%10]; // 1의 자리
delay_ms(10);
}
}
코드비전이고 터미널은 ComportMaster
위 프로그램을 실행시키면
HEX로 입력받으면 FND에 나옵니다
하지만
HEX 는 FF가 최대입니다
나오는값은 255
즉 256 이상의 값을 넣을 수 없습니다
어떻게하면 256부터 천의자리까지 입력할 수 있을까요 ?
댓글 0
조회수 7,326등록된 댓글이 없습니다.