블로그 이미지
권남

카테고리

분류 전체보기 (227)
Temp (1)
CA (0)
Game (0)
nGrinder (0)
Java (17)
JavaScript (1)
JBOSS (0)
EJBCA (0)
Tomcat (1)
DB (6)
Cache (6)
LINUX (4)
Frameworks (11)
C++ (32)
C (96)
Mosquitto (3)
STB (0)
JNI (10)
Android (5)
WebSocket (1)
PDF (0)
AVR (13)
LINUX Device Driver (8)
Arduino (4)
ekgu (0)
resume, portfolio (1)
Dynamics AX (X++) (4)
comp (0)
Total
Today
Yesterday

달력

« » 2025.4
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

공지사항

최근에 올라온 글

interruptClock

AVR / 2015. 4. 13. 15:59

#include <avr/io.h>

#include <util/delay.h>

#include <avr/interrupt.h>


#define MIN1 0xFE //FND0

#define MIN0 0xFD //FND1

#define SEC1 0xFB //FND2

#define SEC0 0xF7 //FND3


int num[] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x27, 0x7F, 0x6F};


int hour = 0;

int min = 0;

int sec = 0;

int ms = 0;


void setup(void);

void setupTimer(void);

void fndDisplay(int select, int data);


SIGNAL(SIG_OVERFLOW0);


int main(void)

{

setup(); // 설정 초기화

setupTimer(); // 타이머를 초기화한다.

sei(); // 모든 이터럽트가 끝나고 초기화

// PORTG = FND0; // 나타날 위치

// PORTE = hex[3]; // 나타낼 값


while(1)

{

fndDisplay(MIN1, min / 10);

fndDisplay(MIN0, min % 10);

fndDisplay(SEC1, sec / 10);

fndDisplay(SEC0, sec % 10);

}

}


void setup(void)

{

// pe0~7, fnd data

// pg0~3, select

DDRE = 0xFF; // FE( 1110 ), FD( 1101 ), FB( 1011 ), F7( 0111 )

DDRG = 0x0F;

}


void setupTimer(void)

{

// 사용할 타이머 설정 <- timer0


// 타이머 인터럽트 설정 TIMSK

//  타이머 인터럽트

// 타이머 카운트 시간 설정

TCCR0 = 0x07; // 분주비 1024 ( 0000 0111)

TCNT0 = 0xFF - 72; // 카운트 시작값.

// 7372800 / 1024 = 7200 / 100 = 72 => 255 -72 = (8bit)


TIMSK = TIMSK | 0x01; //0x01; // Timer Overflow 0000 0001

TIFR = TIFR & 0xFE; //0x01; // Timer0 Overflow flag 0000 0001


}


void fndDisplay(int select, int data)

{

PORTG = select;

PORTE = num[data];

_delay_ms(1);

}


SIGNAL(SIG_OVERFLOW0)

{

cli();

TCNT0 = 0xFF - 72;

++ms;

if ( ms == 100 )

{

++sec;

ms = 0;

}

if ( sec == 60 )

{

++min;

sec = 0;

}

if( min == 60 ) 

min = 0;



sei();

}


'AVR' 카테고리의 다른 글

config  (0) 2015.04.14
ADConverter  (0) 2015.04.14
exUART  (0) 2015.04.14
PDF - AVR MCU (ATmega128)  (0) 2015.04.13
interruptTimer  (0) 2015.04.13
interruptStopWatch  (0) 2015.04.13
Interrupt  (0) 2015.04.10
switch  (0) 2015.04.10
Posted by 권남
, |

최근에 달린 댓글

글 보관함