질문게시판 > Timer Interrupt 프로그램 질문

TODAY9,483 TOTAL3,601,981
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

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


BASIC4MCU | 질문게시판 | Timer Interrupt 프로그램 질문

페이지 정보

작성자 master 작성일2018-07-02 10:16 조회11,200회 댓글0건

본문

	
1. Timer Interrupt를 사용하여 1/100 초 단위로 표시되는
Stopwatch 구현
1-1. 시간은 UART Interrupt를 사용하여 터미널에 표시
1-2. 표시 시간은 분(2자리):(2자리):0.01(00 ~ 99)
1-3. INT0에 연결된 button에 의해 start/stop 제어
   Interrupt 사용
1-4. INT1에 연결된 button에 의해 stop 상태일 때만 시간 00:00:00
   으로 리셋 이상의 동작을 수행하는 프로그램을 작성해주세요 무슨소리 인지 하나도 모르겠습니다.

//

1. FND 구동 소스를 첨부하셔야합니다. (학교에서 배운 기본 예제)
2. 컴파일러 및 mcu 디바이스가 뭔지 적어야합니다.
3. 일부 mcu는 클럭까지 적어야합니다.
//

 

// MCU BASIC: https://www.basic4mcu.com
// DateTime : 2018-05-29 오후 1:14:15
// by Ok-Hyun Park
//
#include <avr/io.h>
#include <avr/interrupt.h>
#define F_CPU 16000000UL // 16 MHz
#include <util/delay.h>
//
#define COM1 (PORTF&=~0x80)
#define COM2 (PORTF&=~0x40)
#define COM3 (PORTF&=~0x20)
#define COM4 (PORTF&=~0x10)
//
volatile char seg_pat[16]={
  0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71  
};
//
volatile char run=0,ms=0,ms10=0,sec=0;
//
ISR(INT0_vect){ run^=0x01;             } // run/stop
ISR(INT1_vect){ if(!run)ms=ms10=sec=0; } // reset
//
ISR(TIMER0_COMP_vect){ //1ms
  static cnt=0;
  PORTF|=0xF0// FND common off
  //
  if(run){
    if(++ms>9){ ms=0;
      if(++ms10>99){ ms10=0if(++sec>99)sec=0; }
    }
  }
  // display
  switch(cnt){
    case 0PORTB=seg_pat[sec /10]; COM1break;
    case 1PORTB=seg_pat[sec %10]; COM2break;
    case 2PORTB=seg_pat[ms10/10]; COM3break;
    case 3PORTB=seg_pat[ms10%10]; COM4break;
  }
  if(++cnt>3)cnt=0;
}
//
int main(){
  DDRB=0xFF;                      // ULN2803 7-segment a~g, high active
  DDRF=0xF0;                      // TR21 7-segment common anode, low active
  TCCR0=0x0C;  OCR0=249TIMSK=2// 16000000/64/(1+249),1ms
  EICRA=0xAA;  EIMSK=0x03;
  SREG=0x80;
  while(1){}
}

 

ATmega128 16MHz 예제입니다.
참고해서 만들어보세요 (mcu가 다르면 큰 도움이 안되겠지만..)

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

댓글 0

조회수 11,200

등록된 댓글이 없습니다.

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

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
질문 아두이노 무선송신 질문 master 18-09-01 10489
질문 아두이노 호환보드 질문 master 18-09-01 11678
질문 아두이노 추가 라이브러리 질문 master 18-09-01 11410
질문 블루투스 단위 질문 master 18-09-01 10123
질문 아두이노 엔코더 해상도와 분해능, 펄스 수 질문 master 18-09-01 12217
질문 C언어 코드 (마찰력코드) 질문 master 18-09-01 11426
질문 아두이노 진동센서와 서보모터 질문 master 18-09-01 11524
질문 적외선 온도 교정 장치(blackbody) 관련 질문 띵인 18-08-30 11921
답변 답변글 답변 : 적외선 온도 교정 장치(blackbody) 관련 질문댓글[2] master 18-08-30 23788
질문 5V 1A~2A 전원공급장치 질문 master 18-08-29 10767
질문 아두이노 질문 하나만 해도될까요?댓글[1] 아두맨 18-08-28 11782
질문 아두이노 개폐연결장치 구동에 대해 질문드립니다.댓글[1] 비공개 18-08-27 15028
질문 서보모터가 찡찡 거리면서 오작동합니다. 비공개 18-08-26 11241
답변 답변글 답변 : 서보모터가 찡찡 거리면서 오작동합니다.댓글[9] 이미지 master 18-08-26 60516
질문 아두이노 블루투스 dc모터 제어댓글[1] 비공개 18-08-24 15309
질문 c언어에서 %2d가 뭔가요? master 18-08-24 36959
질문 ft232r 장치 관리자 master 18-08-24 11619
질문 전기자전거 배터리 전류 질문 이미지 master 18-08-24 10032
질문 C언어 10진수 정수형 변환문자열 질문 master 18-08-24 9744
질문 이 LED는 어디에 어떻게 연결해서 사용해야하는건가요? master 18-08-23 15445
질문 c언어 0과 null 구분 master 18-08-23 12930
질문 8051 ADC 컨버터댓글[1] 디코랩 18-08-23 11305
질문 아두이노 블루투스연결댓글[6] 이미지첨부파일 비공개 18-08-23 39944
질문 8051과 적외선센서와 ADC rohyunge 18-08-22 10951
답변 답변글 답변 : 8051과 적외선센서와 ADC master 18-08-22 10658
질문 온도센서 DS18S20 회로댓글[3] 이미지 rohyunge 18-08-22 20237
질문 EPROM 라이팅 방법 문의 master 18-08-21 10698
질문 PLD 와 MCU의 차이? master 18-08-21 10653
질문 Led smps 회로 질문 master 18-08-20 11650
질문 LCD 출력값 표기하기 Burn 18-08-20 10006
게시물 검색

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
모바일버전으로보기