마이크로프로세서 타이머/카운터1 모드

마이크로프로세서 타이머/카운터1 모드

작성일 2019.11.08댓글 0건
    게시물 수정 , 삭제는 로그인 필요

학교 과제를 하는데 너무 막막해서 한번 올립니다.

문제는

타이머/카운터1의 일반모드를 사용하여 카운팅결과를 7-segment에 출력하는 프로그램을 짜는것입니다.

약 0.2초마다 1씩 증가하고 0000부터시작하여 9999까지 반복하는 프로그램인데


제가 타이머/카운터2의 모드로 코드를 작성하는데는 성공을 했습니다.

다음과 같은 코드입니다. 그런데 이부분에서 빨간색으로 표시된부분을 어떻게 바꿔야 타이머/카운터1의 모드로 사용할수있을지.. 막막합니다. 도와주세요 부탁드립니다.. 주변에 아는사람도없어서 너무 막막합니다..

#include <mega128.h>
#include <delay.h>

char seg_num[10] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};
char hour=0, min=0, sec=0;

void Time_out(void);

void main(void)
{
    DDRC = 0x0F;
    DDRA = 0xFF;
   
    TIMSK = 0x40;
    TCCR2 = 0x05;
    TCNT2 = 0x00;
    SREG = 0x80;
   
    while(1)
    {
        Time_out();

        if( sec >= 61)
        {
            sec = 0;
            min = min + 1;
            if( min == 99 )
            {
                min = 0;
                hour = (hour + 1) % 100;
            }
        }
    }
}

void Time_out(void)
{
    PORTC = 0x07;
    PORTA = seg_num[min % 10];
    delay_ms(5);
   
    PORTC = 0x0B;
    PORTA = seg_num[min / 10];
    delay_ms(5);
   
    PORTC = 0x0D;
    PORTA = seg_num[hour % 10];
    delay_ms(5);
   
    PORTC = 0x0E;             
    PORTA = seg_num[hour / 10];
    delay_ms(5);
}

interrupt [TIM2_OVF] void timer_int2(void)
{
    sec = sec + 5;
}




8051 카운터/타이머에서 모드 1,2,3,4...

... 0 , 1 16 비트 모드 1 , 0 8 비트 자동 재설정 모드 : 실제 타이머/카운터 동작은 TLx에서 일어나고, 오버 플로우가 일어나면 THx의 값이 TLx에 재장전...

타이머/카운터0 TCCR0레지스터 질문

타이머/카운터0 TCCR0레지스터의 WGM01 WGM00에 대해... 예를들어 FAST PWM모드고 OCR0= 126이라하면 TCNT0이... PWM 1 주기 동안에 OCR0는 2번씩 증가합니다. 1. OCR0에...

플래그의 기능],[타이머 모드 1 실험]

... count=20 등의 일을 하도록 하면 된다.) [타이머 모드 1 실험] (정말 제가 하나도 몰라서 이렇게 스캔까지해서 도움을 얻고자 합니다. 부탁드립니다....