질문게시판 > 답변 : FND출력문제

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

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

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

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

BASIC4MCU > 질문게시판

답변 : FND출력문제

페이지 정보

작성자 master 작성일18-06-30 20:45 조회7,762회 댓글0건

본문

thumb-1926149655_aFWtpzZl_beb58c94c5fdbc4d48bc3d495403b9b264d77d36_600x447.jpg 

 

// DateTime : 2018-06-30 오후 8:47:17
// by Ok-Hyun Park
//
FND 구동이  되지 않습니다.
처음 FND시작할때도 0000으로 뜨지않고
스위치를 누르면 seg[17] 순서대로 업다운이 가능해야하는데
FND설정이 잘못되었는지 숫자가 제대로 표시가 안됩니다.
case문 순서를 바꾼이유는 FND가 천의자리숫자부터 일의자리숫자까지 전부 반대로 되어있어서수정을 하였습니다.
스위치 4,5번으로 통한 LED 좌우 시프트는  되지만
스위치 6,7번을 통한 FND 업다운은  되지않습니다.
char seg[17] 사용하여 업다운을 할수있는 방법이 없을까요?
처음에도 0000으로 뜨게하고싶습니다.
//
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
//
volatile char seg[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x27,0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x71,0};
volatile int  n=0;
//
ISR(INT4_vect){
  PORTA<<=1if(PORTA==0)PORTA=0x01;
}
//
ISR(INT5_vect){
  PORTA>>=1if(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 0PORTC=seg[n    %10]; break;
    case 1PORTC=seg[n/10 %10]; break;
    case 2PORTC=seg[n/100%10]; break;
    case 3PORTC=seg[n/1000  ]; break;
  }
  PORTG=1<<cnt;
  if(++cnt>3)cnt=0;
}
//
int main(void){
  DDRA=0xFF;  DDRC=0xFFDDRG=0x0F;
  TCCR0=0x0COCR0=249;  TIMSK=2;
  EICRB=0xAAEIMSK=0xF0;
  sei();
  while(1){}
}

 

두가지 문제점이 있었는데요

 

    case 0PORTC=seg[n    %10]; break;
    case 1PORTC=seg[n/10 %10]; break;
    case 2PORTC=seg[n/100%10]; break;
    case 3PORTC=seg[n/1000  ]; break;

seg[] 배열 처리를 하지 않은 것은 심각한 오류이고

 

volatile char seg[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x27,0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x71,0};
volatile int  n=0;
volatile  선언을 하지 않은 것도 중요한 오류입니다.
인터럽트에서 사용하는 전역 변수는 volatile 선언을 해줘야 합니다.
(코드비젼은 volatile 없어도 됨)

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

댓글 : 0

조회수 : 7,762

등록된 댓글이 없습니다.

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[28] master  17-10-29
질문 아두이노 lcd 디지털시계 (도와주시면 감사하겠습니다!… 첨부파일김리 새글 05:43
질문 아두이노 디지털 시계 첨부파일1233 새글 02:03
질문 dfplayer 블루투스 연결 앱인벤터 첨부파일아두이노우 새글 01:28
질문 아두이노 LCD 글자 출력질문입니다. Tell 새글 23-06-10
답변 답변 : 아두이노 LCD 글자 출력질문입니다. master 새글 23-06-10
질문 아두이노 delay함수를 millis함수로 대체하는방법 댓글[1] 첨부파일이게아닌데 새글 23-06-09
답변 답변 : 아두이노 delay함수를 millis함수로 대… master 새글 23-06-09
질문 atmega128 적외선센서 관련질문입니다. 댓글[7] 춘배  23-06-08
질문 아두이노 whillis 함수 delay처럼 사용하는방법… 댓글[1] 이게아닌데  23-06-08
질문 아두이노 로드셀 질문 댓글[3] 첨부파일아두이노노노논  23-06-08
질문 아트메가 128 DHT22온도센서 댓글[1] tmet  23-06-08
질문 압력센서에 따른 진동모터를 버튼으로 제어 회로도 질문 도와주세용용  23-06-07
질문 아두이노 리니어 제어 모듈 설계중입니다. 도와주세요 갓비타  23-06-06
답변 답변 : 아두이노 리니어 제어 모듈 설계중입니다. 도와… master  23-06-07
질문 dc모터 제어 관련 질문 드려요 ㅠㅠ!! 댓글[2] dpwl  23-06-06
답변 답변 : dc모터 제어 관련 질문 드려요 ㅠㅠ!! master  23-06-07
질문 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  23-06-07
질문 ATMEGA128 혹시 여기서 왜 인터럽트 기능이 안되… 댓글[1] IEEE  23-06-04
질문 stm32f767을 이용해서 자이로가속도 센서의 값 받… 댓글[1] rlchwjswk  23-06-03
질문 아두이노 모터제어 관련해서 질문드립니다! 댓글[1] 첨부파일아두이노어렵잖아  23-06-03
질문 atmega128 디지털조도센서 코드오류 댓글[1] 까미  23-06-02
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전