질문게시판 > atmega128 led bar를 이용한 stopwatch

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

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


BASIC4MCU | 질문게시판 | atmega128 led bar를 이용한 stopwatch

페이지 정보

작성자 가나초코 작성일2021-06-09 19:38 조회38회 댓글3건

본문

	

LED 동작 (16bit 타이머 사용) 

1. 초기 상태 : LED off 

2. Stopwatch 시작 시 PC0 LED 0.25초마다 on/off 

3. 2초마다 PC1, PC2, PC3…PC7 LED on 

4. PC7까지 켜지면 stopwatch 종료(LED off 상태로 유지) 

 

이렇게 동작을 코딩을 했더니 PC0만 2초로 껐다 켜졌다 하더군요.

레지스터하고 괜찮은것 같고 2~3번 부분이 코딩이 잘못됐건 알겠는데 

무엇이 잘못되었는지 정확하게 모르겠습니다. 저부분에 대해서 조금 팁이나 수정 등 코딩지식이 부족한 제게 한 수 알려주시는분께 진심을 다해 감사드리겠습니다.

 

#include <mega128.h>

 

unsigned char led = 0xFF, cnt = 0; 

bit flag = 0;

 

void main(void)

    DDRC = 0xFF;

    DDRD = 0b00000000;

    PORTC = led;

    PORTD = 0x00;

    

    EIMSK = 0b00000011;     //PD0,1 사용

    EICRA = 0b00001010;     // 하강에지 사용

 

    TIMSK = 0b00000100;     //TOIE1 =(overflow)

    TCCR1A = 0b00000000;

    TCCR1B = 0b00000101;    //1/16us * 3906 * 1024 = 249.~ms = 0.25s

    TCNT1 = 3906;     //초기값 3906

    SREG = 0b10000000;

    

    while(1);

}

 

interrupt [TIM1_OVF] void timer_int1(void)

{

    TCNT1 = 3906;

    cnt++;

    if(flag == 0){

        led = led^0x00;

        PORTC = led;

    }

    if(flag == 1){        

        led = led^0x01;

        PORTC = led;

        cnt = 0;

        if(cnt == 8){

            led--;

            PORTC = led;

            cnt = 0;

        }

    }

}

interrupt [EXT_INT0] void external_int0(void)   // stopwatch (재)시작/일시정지

{

    flag = ~flag;

}

interrupt [EXT_INT1] void external_int1(void)  // 종료(LED off 상태로 유지)

{    

    flag = 0;

}

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

댓글 3

조회수 38

master님의 댓글

master 작성일

led=led^0x00;
이 연산은 있으나 마나한 연산입니다.
if(flag==0){ led=led^0x00; PORTC=led; }
따라서 if()문은 의미가 없겠죠 flag==0 에서 아무런 처리를 하지 않음
//
 flag==1 에서도 이상한 코드가 있습니다.
        cnt=0; // 여기서 0을 만들고
        if(cnt==8){ cnt=0; led--; PORTC=led; } // 바로 아래에서 8인지 묻고 있군요
절대로 8이 될 수가 없으니 if문은 실행되지 않으므로 없는 것과 같습니다.

가나초코님의 댓글

가나초코 댓글의 댓글 작성일

감사합니다 참고하여 제것이 될 수 있게 해볼게요 감사드립니다!!

master님의 댓글

master 작성일

#include <mega128.h>
//
bit  run=0,toggle=0;
unsigned char n=1;
//
interrupt [EXT_INT0] void external_int0(void){ run=~run;                        } // pause
interrupt [EXT_INT1] void external_int1(void){ run=0; n=1; toggle=0; PORTC=0xFF; } // reset
//
interrupt [TIM1_OVF] void timer_int1(void){
    TCNT1=3906;
    if(run){
        toggle=~toggle;
        PORTC=~((1<<n)|toggle);
        if(++n>7)n=1;
    }
    else{ PORTC=0xFF; }
}
//
void main(void){
    PORTC=0xFF;  DDRC=0xFF;
    TCCR1B=0x05; TCNT1=3906; TIMSK=4; // 1/16us * 3906 * 1024=249.~ms=0.25s
    EICRA=0xAA;  EIMSK=0x03;          // 하강에지 사용 //PD0,1 사용
    SREG=0x80;
    while(1);
}
일시 정지 시에 포트 출력을 off 하지 않고 그대로 유지하고 싶으면
    else{ PORTC=0xFF; }
이 코드를 삭제하세요

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

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은 질문게시판에서만 작성 가능합니다. 스태프 19-01-15 3360
공지 사이트 이용 안내댓글[17] master 17-10-29 17962
질문 버튼으로 dc모터제어하는법 질문이요 새글 아두초짜 01:26 3
질문 아두이노 버튼이 잘 안됩니다 이미지새글 ekac 21-06-12 5
질문 안드로이드 스튜디오 오류 수정 이미지새글첨부파일 dkzltm 21-06-12 4
질문 아두이노 블루투스 연결에 대해 질문있습니다.댓글[1] 이미지새글첨부파일 쏘쏘 21-06-12 9
질문 아두이노 초음파센서와 블루투스 함께 사용하는법 알고 싶습니다. 이미지새글첨부파일 대학생 21-06-12 2
질문 delay_us(u_sec); 질문댓글[1] 새글 초짜 21-06-11 23
질문 atmega128 LED 제어댓글[1] 새글 포드 21-06-11 44
질문 마프 atmega128 led주기를 스위치로 제어하는 코드댓글[1] 꼬북맛초코칩 21-06-10 58
질문 부져 작동법댓글[1] 이미지첨부파일 네로 21-06-10 17
질문 아두이노 알파봇 장애물 우회 어떻게 하나요 ㅠㅠㅠㅠ댓글[1] 이미지첨부파일 네로 21-06-10 15
질문 A4988 모터 드라이버 질문댓글[2] 초짜 21-06-10 28
질문 아두이노에서 블루투스와 gps를 같이 쓰고싶어요댓글[4] 김라꾸 21-06-10 48
질문 ATMEGA128 토양습도센서값에따라 led, 모터 제어댓글[4] 정원 21-06-10 45
질문 아두이노 방범 장치 질문 하나 더 드립니다댓글[1] 이미지 juhy124 21-06-10 16
질문 그래픽 LCD에서 캐릭터 LCD로 변환하는 코드 추가 질문 드립니다.댓글[1] 첨부파일 jenny25 21-06-10 17
질문 시간에 따라서 제어는 가능할거같은데 이제 이게 문제에요 한번만 더 봐주신다면 감사하겠습니다댓글[1] 졸작어렵다 21-06-10 24
질문 아두이노 방범장치 만들고 있는데요댓글[4] juhy124 21-06-10 22
질문 아두이노-앱인벤터 관련 질문입니다.댓글[3] 이미지 아하어렵다 21-06-09 25
질문 아두이노 블루투스 값 읽어들이는 부분댓글[1] 이미지 juhy124 21-06-09 31
질문 아두이노 온도센서 블루투스 통신 앱만들기 질문댓글[1] 이미지첨부파일 햇맹 21-06-09 41
현재글 atmega128 led bar를 이용한 stopwatch댓글[3] 가나초코 21-06-09 39
질문 LED 제어댓글[1] rhythm 21-06-09 34
질문 atmega129 초음파센서, 블루투스 모듈(HC-06)관련 질문드립니다.댓글[2] 이미지 루크 21-06-09 58
질문 ATMEGA FND 작동 관련 문의댓글[2] 총체적난국 21-06-09 23
질문 esp8266과 부품여러개로 시간에따라서 제어하고싶은데요...댓글[1] 졸작어렵다 21-06-08 29
질문 외부인터럽트 LED 제어댓글[7] rhythm 21-06-08 54
질문 아두이노 메가로 tft lcd 조작댓글[3] 갈배사이다 21-06-08 43
질문 ATMEGA128 조도 값에 따라 모터 회전을 하고 싶습니다.댓글[2] 이미지 봉구 21-06-08 49
게시물 검색

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