질문게시판 > ATMEGA128 타이머 문의 드립니다.

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

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

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

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

BASIC4MCU > 질문게시판

ATMEGA128 타이머 문의 드립니다.

페이지 정보

작성자 수제비성애자 작성일21-11-17 01:21 조회4,775회 댓글3건

본문

#define F_CPU 16000000

 

#define INIT_SEC 0

#define INIT_MIN 0

 

#include <avr/io.h>

#include <avr/interrupt.h>

#include <util/delay.h>

 

unsigned char count_int=0;

char count=0, Seconds=INIT_SEC, Minutes=INIT_MIN;

 

ISR(TIMER0_OVF_vect) // TIMER0 has overflowed

count_int++; // count_int값이 하나 증가

// 244번에 한번씩 seconds를 하나 증가 즉, 244.14 Hz / 244 = 1Hz, 즉 1초임.

if(count_int == 244){

PORTG ^= 0x03;

Seconds++;

count_int=0;

}

}

 

int main(void) 

{

const unsigned char Segment_Data[] = 

{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x27,0x7F,0x6F};

//"0, 1, 2, 3, 4, 5, 6, 7, 8, 9"

unsigned int COLUMN[4]={0,0,0,0};

DDRA=0xff; // PORTA 출력용으로 설정

DDRC=0xff; // PORTC 출력용으로 설정

DDRG = 0x03; // PORTG의 D0, D1을 출력으로 설정

TCCR0 = 0x06; // Normal mode, prescale 256, 16M/256=62500Hz

TCNT0 = 0x00; // n=0, 256 count, 62500Hz/256=244.14Hz

TIMSK = 0x01; // timer0 OVERFLOW interrupt enable

SREG |= 0x80; // Global Interrupt Enable

while (1) 

{

COLUMN[0] = (Minutes%100)/10; // 분의 십의자리를 계산하여 넣는다.

COLUMN[1] = (Minutes%10); // 분의 일의자리를 계산하여 넣는다.

COLUMN[2] = (Seconds%100)/10; // 초의 십의자리를 계산하여 넣는다.

COLUMN[3] = (Seconds%10); // 초의 일의자리를 계산하여 넣는다.

for(int i=0;i<4;i++) 

// i번째 자리의 DIGIT만 선택. common Anode라서 거기만 Common을 0을 주어 켤 수 있도록 함.*/

PORTC=~(0x01<<i);

// i번째 자리에 해당하는 세그먼트의 숫자를 켬

PORTA = Segment_Data[COLUMN[i]];

_delay_ms(2);

}

if(Seconds>=60) // 초값이 60이 되면 1분 = 60초

Seconds=0; // 초값을 0으로 만듦

Minutes++; // 분값은 하나 증가함

}

}

}

 

다음을 활용하여 

 

1. 7-segment의 display 되는 숫자를 아래와같이 나타나게 표현해주세요 (점표현은 시간단위와 1분단위쪽에 표시)

[시간단위.]  [10분단위]  [1분단위.]  [10초단위]

 

 

2. 초기값을 1시간 59분 40초로 해주세요  (초기값이 1.59.4 로 표시되면 됨)

 

3. 타이머 관련 옵션을 조정해서 시간을 두배 빠르게 카운트되게 해주세요

 

#define INIT_HOU 0 

if(Minutes>=60) // 분값이 60이 되면 60분 = 1시간

Minutes=0; // 분값을 0으로 만듦

Hour++; // 시간값은 하나 증가함

}

을 추가해서 시간을 세도록 만들었습니다.

초기값 1,59,4 를 어떻게 표현해야 할까요?

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

댓글 : 3

조회수 : 4,775

master님의 댓글

master 작성일

#define INIT_SEC 4
#define INIT_MIN 59
#define INIT_HOU 1
char count=0, Seconds=INIT_SEC, Minutes=INIT_MIN, Hour=INIT_HOU;
1시 59분 4초의 초기값은 위 선언에서 하면 됩니다.

수제비성애자님의 댓글

수제비성애자 댓글의 댓글작성일

1시간 뒤에 닷, 59분 뒤에 닷 표시는 어떻게 하면 될까요?

master님의 댓글

master 작성일

COLUMN[0] = (Hour%100)/10; // 시의 십
COLUMN[1] = (Hour%10); // 시의 일
COLUMN[2] = (Minutes%100)/10; // 분의 십
COLUMN[3] = (Minutes%10); // 분의 일
COLUMN[4] = (Seconds%100)/10; // 초의 십
COLUMN[5] = (Seconds%10); // 초의 일
for(int i=0;i<6;i++){
  PORTC=~(1<<i); // DIGIT
  PORTA=Segment_Data[COLUMN[i]]; // 세그먼트 숫자
  if((i==1)||(i==3))PORTA|=0x80; // DOT
  _delay_ms(2);
}

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
질문 atmega128과 dht11, lcd를 연결했는데 0… 댓글[1] 고양이33  22-08-02
질문 ATmega128, ATmega28 RS232통신 첨부파일Moon4201  22-06-24
답변 답변 : ATmega128, ATmega28 RS232… 댓글[1] master  22-06-25
질문 atmega128 avr usart 질문 snoflak  22-06-21
답변 답변 : atmega128 avr usart 질문 댓글[5] master  22-06-21
질문 atmega128 댓글[1] 양의노래  22-06-20
질문 ATMEGA128 UART,FND 연동 질문 JMOD  22-06-19
답변 답변 : ATMEGA128 UART,FND 연동 질문 댓글[1] master  22-06-20
질문 atmega128 초음파 센서로 신호등 시간초 늘리기 서동씨  22-06-18
답변 답변 : atmega128 초음파 센서로 신호등 시간초… 댓글[1] master  22-06-18
질문 atmega128 댓글[2] 망경이  22-06-18
질문 안녕하세요 atmega128 질문드리고 싶습니다. (자… 댓글[3] dlcldl  22-06-17
질문 ATMEGA128 HIGH LOW신호 수신 질문 yhj2644  22-06-16
답변 답변 : ATMEGA128 HIGH LOW신호 수신 질… 댓글[3] master  22-06-17
질문 codevision atmega128 코딩 알려주세요 … 댓글[4] goodjob  22-06-16
질문 atmega128 인터럽트 이용한 dc모터 제어 댓글[2] 첨부파일박맹  22-06-10
질문 atmega128 순차적신호 질문있습니다 댓글[1] 첨부파일졸업예정  22-06-10
답변 답변 : atmega128 순차적신호 질문있습니다 master  22-06-10
질문 ATMEGA128 인터럽트 관련질문입니다 댓글[2] 짜요쩌요  22-06-09
질문 atmega128에서 초음파 센서(HC-SR04)를 통… seung  22-06-08
답변 답변 : atmega128에서 초음파 센서(HC-SR0… 댓글[1] master  22-06-08
질문 Atmega128 코딩 도와주세요,,! 첨부파일화니뿌뿌  22-06-07
답변 답변 : Atmega128 코딩 도와주세요,,! 댓글[3] master  22-06-08
질문 atmega128 코드 질문있습니다 콜뚜기  22-06-07
답변 답변 : atmega128 코드 질문있습니다 댓글[3] master  22-06-07
질문 ATMEGA128질문입니다. 댓글[1] suid82  22-06-06
질문 atmega128 프로젝트 외주 사례합니다 댓글[1] 공돌ㅇ  22-06-05
질문 atmega128 프로테우스 부저소리 관련하여.. 댓글[1] 꿍다라링  22-06-04
질문 atmega128 조도센서를 이용하여 서보모터와 dc모… 첨부파일화니뿌뿌  22-06-02
답변 답변 : atmega128 조도센서를 이용하여 서보모터… 댓글[4] master  22-06-02
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전