BASIC4MCU | 질문게시판 | ATMEGA128 UART 구구단 출력에 관해 질문 드립니다
페이지 정보
작성자 호빵맨 작성일2020-10-28 09:38 조회2,804회 댓글0건본문
#include <avr/io.h>
void init_uart0() // UART0 초기화 함수
{
UCSR0B = 0x18; // 수신 Receive(RX) 및 송신 Transmit(TX) Enable
UCSR0C = 0x06; // UART mode, 8 bit data, no parity, 1 stop bit
UBRR0H = 0; // baudrate 세팅
UBRR0L = 103; // 16MHz, 9600 baud
}
void putchar0(char c) // 1 문자를 송신(transmit)하는 함수
{
while(!(UCSR0A & (1<<UDRE0))) ; // UCSR0A 5번 비트 = UDRE(UDR Empty), UDRE0는 5로 define, 0x20 과 & 효과
UDR0 = c; // 1 문자 송신
}
char getchar0() // 1 문자를 수신(receive)하는 함수
{
while (!(UCSR0A & (1<<RXC0))) ; // UCSR0A 7번 비트 = RXC(Receiver Complete), RXC0는 7로 define, 0x80과 & 효과
return(UDR0); // 1 문자 수신, UDR0에서 수신 데이터를 가져옴
}
int main()
{
char value;
init_uart0(); // UART0 초기화
while(1) // 문자 수신 무한 루프 수행
{
value = getchar0(); // 문자 입력 기다림
putchar0(value);
char a1;
char a2;
char a3;
char a4;
char a5;
if ((value >= 49) && (value <= 57))
{
for(a1>=49; a1<=57; a1++)
{
putchar0(a1);
putchar0('X');
putchar0(value);
putchar0('=');
a1 = value-'0';
a2 = a1-'0';
a3 = a1*a2;
a4 = a3/10;
a4 = a3%10;
a3 +='0';
a5 +='0';
putchar0(a4);
putchar0(a5);
putchar0('=');
putchar0('\n');
putchar0('\r');
}
}
else
putchar0(value);
}
}
일단 여기까지 했는데 5를 입력하면
5*1
5*2
...
5*9
처럼 나오게 하려면 어떻게 해야하나요?
댓글 0
조회수 2,804등록된 댓글이 없습니다.