BASIC4MCU | 질문게시판 | FND출력문제
페이지 정보
작성자 MCU새우 작성일2018-06-30 00:41 조회7,788회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=5626
본문
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
char seg[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x27,0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x71,0};
int n=0;
ISR(INT4_vect){
PORTA<<=1; if(PORTA==0)PORTA=0x01;
}
ISR(INT5_vect){
PORTA>>=1; if(PORTA==0)PORTA=0x80;
}
ISR(INT6_vect){
if(++n>9999)n=0;
}
ISR(INT7_vect){
if(--n<0)n=9999;
}
ISR(TIMER0_COMP_vect){
static char cnt=0;
PORTG=0;
switch(cnt){
case 0: PORTC=n %10; break;
case 1: PORTC=n/10 %10; break;
case 2: PORTC=n/100%10; break;
case 3: PORTC=n/1000; break;
}
PORTG=1<<cnt;
if(++cnt>3)cnt=0;
}
int main(void){
DDRA=0xFF; DDRC=0xFF; DDRG=0x0F;
TCCR0=0x0C; OCR0=249; TIMSK=2;
EICRB=0xAA; EIMSK=0xF0;
sei();
while(1){}
}
FND 구동이 잘 되지 않습니다.처음 FND시작할때도 0000으로 뜨지않고스위치를 누르면 seg[17]에 순서대로 업다운이 가능해야하는데FND설정이 잘못되었는지 숫자가 제대로 표시가 안됩니다.case문 순서를 바꾼이유는 FND가 천의자리숫자부터 일의자리숫자까지 전부 반대로 되어있어서수정을 하였습니다.스위치 4,5번으로 통한 LED 좌우 시프트는 잘 되지만스위치 6,7번을 통한 FND 업다운은 잘 되지않습니다.char seg[17]을 사용하여 업다운을 할수있는 방법이 없을까요?처음에도 0000으로 뜨게하고싶습니다.
댓글 0
조회수 7,788등록된 댓글이 없습니다.