BASIC4MCU | 질문게시판 | atmega128 시리얼통신 질문
페이지 정보
작성자 기벡장인 작성일2019-06-08 14:58 조회3,648회 댓글0건본문
1. 통신 포멧은 9600pbs, data bit 8, No Parity, stop 1
2. PC용 통신프로그램을 이용 타깃보드에 숫자를 보냈을 때 해당 숫자가 FND에 표시되도록 할 것
(단, 초기 숫자는 0이고, 이전 숫자는 왼쪽으로 이동시키고 새로운 숫자는 반드시 우측에 표시 ) 이 조건으로 코드를 짜려고 합니다
현재까지 시도해본 코드는
#include <stdio.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include "uart.h"
#include "fnd.h"
ISR(TIMER0_COMP_vect){
fnd_update();
}
int main(void){
uint8_t ch;
uint32_t num = 0;
DDRA = 0xff;
PORTA = 0;
fnd_init();
uart0_init();
uart0_puts(" hello world \r\n");
TCCR0 = (1<<WGM01) | (1<<CS02) | (1<<CS00);
OCR0 = 124;
TIMSK = (1<<OCIE0);
sei();
while(1){
ch = uart0_getch();
if( '0' <= ch && ch <= '9'){
num = (ch & 0x0f);
fnd_disp_num(num);
if(num>10000){
num=num%10000;
}
}
}
return 0;
}
이 코드이며 시리얼 모니터에 1234 숫자를 입력하엿을 시 자리수가 나오지 않고 1의자리
fnd에 1>2>3>4 이렇게만 표시되는 상황입니다
어디가 틀린지 고수님들의 의견이 궁금합니다
댓글 0
조회수 3,648등록된 댓글이 없습니다.