질문게시판 > 답변 2: 타이머를 활용한 fnd 카운터

TODAY485 TOTAL2,277,874
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | 질문게시판 | 답변 2: 타이머를 활용한 fnd 카운터

페이지 정보

작성자 master 작성일2018-05-02 18:36 조회5,808회 댓글0건

본문

	

 

// DateTime : 2018-05-02 오후 6:30:07
// by Ok-Hyun Park
//
#include <mega128.h>
#include <delay.h>
//
char fnd[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
char ms=0,s=0,m=0;
//
void display(int n){
  PORTB=fnd[m/10]; PORTG=1delay_ms(1); PORTG=0;
  PORTB=fnd[m%10]; PORTG=2delay_ms(1); PORTG=0;
  PORTB=fnd[s/10]; PORTG=4delay_ms(1); PORTG=0;
  PORTB=fnd[s%10]; PORTG=8delay_ms(1); PORTG=0;
}
//
interrupt[TIM1_COMPA]void timer1_compare(void){
  if(++ms==25){ ms=0;
    if(++s>59){ s=0if(++m>59)m=0; }
  }
}
//
void main(void){
  DDRB=0xffDDRG=0x0fDDRC=0x0fPORTB=0xff;
  OCR1AH=0x03OCR1AL=0x20TCCR1A|=1<<WGM12TCCR1B|=1<<CS11TIMSK|=1<<OCIE1A;
  SREG|=0x80;
  while(1){ display(s); }
}

 

간단한 시계예제입니다.

m과 s를 59가 아닌 99로 하면 질문 소스와 동일한 동작을 합니다.

//

 

// DateTime : 2018-05-02 오후 6:37:59
// by Ok-Hyun Park
//
#include <mega128.h>
#include <delay.h>
//
char fnd[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
char s=0,m=0,cnt=0;
int  ms=0;
//
void display(int n){
}
//
interrupt[TIM1_COMPA]void timer1_compare(void){ //1ms
  PORTG=0// FND OFF
  //
  if(++ms>999){ ms=0;
    if(++s>59){ s=0if(++m>59)m=0; }
  }
  //
  switch(cnt){
    case 0PORTB=fnd[m/10]; break;
    case 1PORTB=fnd[m%10]; break;
    case 2PORTB=fnd[s/10]; break;
    case 3PORTB=fnd[s%10]; break;
  }
  PORTG=1<<cnt;
  if(++cnt>3)cnt=0;
}
//
void main(void){
  DDRB=0xff;   DDRG=0x0f;   DDRC=0x0f;  PORTB=0xff;
  TCCR1B=0x09OCR1A=15999TIMSK=0x10SREG=0x80//1ms
  while(1){}
}

 

1ms 주기로 변경하고 타이머 인터럽트에서 FND를 구동합니다.

타이머 인터럽트에서 가장먼저 FND를 OFF 시키는 것은 잔상을 없애기 위한 방법입니다.

 

 

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

댓글 0

조회수 5,808

등록된 댓글이 없습니다.

질문게시판HOME > 질문게시판 목록

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
질문 아두이노 코딩 질문..댓글[2] 이미지첨부파일 sg2p1o 18-05-07 7277
답변 답변글 답변 : 터치센서 HIGH/LOW 변할 때마다 네오픽셀 색상 변경 master 18-05-07 5822
답변 답변글 답변 2: 포텐션미터 실시간 네오픽셀 밝기 변경 master 18-05-07 5652
답변 답변글 답변 3: 조도센서 네오픽셀 색상변경 master 18-05-07 5751
답변 답변글 답변 4: 조도센서 히스테리시스 master 18-05-07 5492
답변 답변글 답변 5: 조도센서 칼라변경 RGBR->GBRG->BRGB-> master 18-05-07 5356
질문 안녕하세요,댓글[5] Songyoun 18-05-07 12711
질문 초음파센서 2개로 거리측정 이미지첨부파일 hdki 18-05-07 11517
답변 답변글 답변 : 초음파센서 2개로 거리측정 master 18-05-07 5995
질문 적외선 센서2개로 상호간격측정 문의드립니다.댓글[3] hdki 18-05-07 10010
질문 출력이 이와같이 나옵니다.댓글[3] 이미지첨부파일 키츠네유즈 18-05-07 9419
답변 답변글 답변 : RSSI 히스테리시스 master 18-05-07 5433
질문 무게센서 추가질문 슈돌 18-05-07 5681
답변 답변글 답변 : 무게센서 추가질문댓글[2] master 18-05-07 8690
질문 블루투스 신호 서보모터제어관련 키츠네유즈 18-05-07 6315
답변 답변글 답변 : 블루투스 신호 서보모터제어관련댓글[3] master 18-05-07 10477
질문 FND를 활용해서 덧셈결과를 출력하는 코드에대해서 질문드립니다. 이미지첨부파일 27315co 18-05-06 6011
답변 답변글 답변 : FND를 활용해서 덧셈결과를 출력하는 코드에대해서 질문드립니다.댓글[5] master 18-05-07 15330
답변 답변글 답변 2: FND를 활용해서 덧셈결과를 출력하는 코드에대해서 질문드립니다.댓글[2] master 18-05-07 7019
답변 답변글 답변 : 답변 2: FND를 활용해서 덧셈결과를 출력하는 코드에대해서 질문드립니다. 첨부파일 27315co 18-05-07 5271
질문 오렌지 보드 BLE 앱인벤터2 블루투스 질문입니다.댓글[1] 이미지 문화시민 18-05-06 10509
질문 PID 제어 코드 관련3댓글[5] 첨부파일 서씨 18-05-05 18377
질문 PID제어 코드 관련 2댓글[4] 서씨 18-05-05 12137
질문 세개의 아두이노 코딩을 하나로 통합하는법 비공개 18-05-05 5943
답변 답변글 답변 : 세개의 아두이노 코딩을 하나로 통합하는법댓글[6] master 18-05-05 18456
질문 아두이노 버튼 인식 질문 드립니다 ㅠ댓글[2] hdki 18-05-04 7566
질문 PID제어 코드 관련 서씨 18-05-04 5704
답변 답변글 답변 : PID제어 코드 관련댓글[2] master 18-05-04 8390
질문 아두이노 버튼 인식 질문 드립니다 ㅠ댓글[1] hdki 18-05-04 8015
답변 답변글 답변 : 아두이노 버튼 인식 질문 드립니다 ㅠ댓글[2] 이미지 master 18-05-04 9552
게시물 검색

2022년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2021년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2020년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2019년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2020
모바일버전으로보기