질문게시판 > master님 정말감사합니다! 마지막 질문드릴께요 ㅠㅠ

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

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


BASIC4MCU | 질문게시판 | master님 정말감사합니다! 마지막 질문드릴께요 ㅠㅠ

페이지 정보

작성자 이민호 작성일2018-09-07 17:13 조회184,256회 댓글16건

본문

	

// 

 

#include <iom128.h>

 

#include <ina90.h>

 

// 

 

unsigned char fnd[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; 

 

char flag=0,run=0,mode=0,buf[2]; 

 

int  cnt=0;

 

//

 

#pragma  vector=TIMER0_OVF_vect 

 

__interrupt void TIMER0_OVF_Isr(void){ // 1ms 

 

  static char fnd_cnt=0; 

 

  TCNT0=131; 

 

  PORTC&=~0x80; PORTD=0x7F; // 세그먼트 OFF

 

  if(run){

 

    switch(fnd_cnt){ 

 

      case 0: PORTD=fnd[buf[0]]; PORTD|=0x80; break; 

 

      case 1: PORTD=fnd[buf[1]]; PORTC|=0x80; break; 

 

    }

 

    if(++fnd_cnt>1)fnd_cnt=0; 

 

    //

 

    if(mode==0){ if(++cnt>15000)cnt=0; } // 30 // 15sec

 

    if(mode==1){ if(++cnt>10000)cnt=0; } // 60 // 10sec

 

    if(mode==2){ if(++cnt> 5000)cnt=0; } // 90 // 5sec

 

    if(cnt==0){

 

      if(PORTC&1){ PORTC&=~1; PORTC|=2; }

 

      else       { PORTC&=~2; PORTC|=1; }

 

    }

 

  } 

 

  else{ PORTC&=~3; }

 

 

// 

 

void main(){ 

 

  char n=30;

 

  DDRC=0x83; DDRD=0xFF; 

 

  TCCR0=4; TCNT0=131; TIMSK=1; //8000000/64/(256-131),1ms  

 

  __enable_interrupt(); 

 

  while(1){ 

 

    if(PINA&1)run=1;

 

    else      run=0; // PA0 // 토글스위치 // ON/OFF

 

    //

 

    if(PINA&2){

 

      if(flag==0){ flag=1; if(++mode<2)mode=0; cnt=0; } // PA1 // 푸쉬스위치

 

    }

 

    flag=0;

 

    //

 

    if(mode==0){ buf[0]=3; buf[1]=0; } // 30 // 15sec

 

    if(mode==1){ buf[0]=6; buf[1]=0; } // 60 // 10sec

 

    if(mode==2){ buf[0]=9; buf[1]=0; } // 90 // 5sec

 

  } 

 

}

 

보내주신대로 코딩했는데 위에 회로랑 맞는지 한번만 확인해주실수 있나요?ㅠㅠ

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

댓글 16

조회수 184,256

이민호님의 댓글

이민호 작성일

위에 회로는 말씀해주신대로 변경한 회로입니다!

master님의 댓글

master 작성일

스위치 풀다운 저항 사용하라고 했더니 풀업저항 사용하는 형식으로 바꿨군요?

    if(PINA&1==0)run=1;
    if(PINA&2==0){
스위치 체크하는 문장 수정하세요

이민호님의 댓글

이민호 댓글의 댓글 작성일

감사합니다 근데 궁금한게 있습니다 결과에대한건데
Warning[Pe177]: variable "n" was declared but never referenced C:\Users\com1-1\Documents\asdk\ox.c 65
 
 418 bytes of CODE memory (+ 18 bytes shared)
  18 bytes of DATA memory (+  8 bytes shared)
 
Errors: none
Warnings: 1
 
Done. 0 error(s), 1 warning(s)
이렇게 뜨는데 괜찮은건가요?? 저도 warning은 신경안써도된다고 들어서 괜찮을거같은데 밑에뜨는 글을보면 main문으로 돌아가지않는다고 되있어서 궁금합니다 ㅠ

master님의 댓글

master 댓글의 댓글 작성일

변수 n을 선언만 하고 사용하지 않았다는 워닝입니다.
변수 선언 삭제하세요
//
인터럽트에서 사용하는 전역 변수는 volatile 형을 사용해야 합니다.
volatile unsigned char fnd[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
volatile char flag=0,run=0,mode=0,buf[2];
volatile int  cnt=0;

master님의 댓글

master 작성일

세그먼트 저항을 1K에서 330옴으로 변경하고
핀번호 맞추세요
PD0---seg A
PD1---seg B
PD2---seg C
PD3---seg D
PD4---seg E
PD5---seg F
PD6---seg G

PD7---10자리 common
PC7---1자리 common

이민호님의 댓글

이민호 댓글의 댓글 작성일

회로도 상에서 말씀이신가요??? 아니면 용접해서 연결할때를 말씀하시는 건가요??

master님의 댓글

master 댓글의 댓글 작성일

둘 다 하세요

이민호님의 댓글

이민호 댓글의 댓글 작성일

감사합니다 말씀해주신대로 코딩 수정해봤습니다
//

#include <iom128.h>

#include <ina90.h>

//

volatile unsigned char fnd[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};

volatile char flag=0,run=0,mode=0,buf[2];

volatile int  cnt=0;

//

#pragma  vector=TIMER0_OVF_vect

__interrupt void TIMER0_OVF_Isr(void){ // 1ms

  static char fnd_cnt=0;

  TCNT0=131;

  PORTC&=~0x80; PORTD=0x7F; // 세그먼트 OFF

  if(run){

    switch(fnd_cnt){

      case 0: PORTD=fnd[buf[0]]; PORTD|=0x80; break;

      case 1: PORTD=fnd[buf[1]]; PORTC|=0x80; break;

    }

    if(++fnd_cnt>1)fnd_cnt=0;

    //

    if(mode==0){ if(++cnt>15000)cnt=0; } // 30 // 15sec

    if(mode==1){ if(++cnt>10000)cnt=0; } // 60 // 10sec

    if(mode==2){ if(++cnt> 5000)cnt=0; } // 90 // 5sec

    if(cnt==0){

      if(PORTC&1){ PORTC&=~1; PORTC|=2; }

      else      { PORTC&=~2; PORTC|=1; }

    }

  }

  else{ PORTC&=~3; }

}

//

void main(){


  DDRC=0x83; DDRD=0xFF;

  TCCR0=4; TCNT0=131; TIMSK=1; //8000000/64/(256-131),1ms 

  __enable_interrupt();

  while(1){

    if(PINA&1==0)run=1;

    else      run=0; // PA0 // 토글스위치 // ON/OFF

    //

    if(PINA&2==0){

      if(flag==0){ flag=1; if(++mode<2)mode=0; cnt=0; } // PA1 // 푸쉬스위치

    }

    flag=0;

    //

    if(mode==0){ buf[0]=3; buf[1]=0; } // 30 // 15sec

    if(mode==1){ buf[0]=6; buf[1]=0; } // 60 // 10sec

    if(mode==2){ buf[0]=9; buf[1]=0; } // 90 // 5sec

  }

}
맞는지 확인한번 해주실수있나요??

master님의 댓글

master 댓글의 댓글 작성일

체크는 직접 해보세요

이민호님의 댓글

이민호 댓글의 댓글 작성일

감사드립니다 직접연결후 프로그램 다운로드까지 했는데 실행이되지않습니다. 혹시 입력포트가 A0, A1 이맞는지랑 릴레이출력포트가 C0,C1이맞는지 궁금합니다. 추가적으로 입출력포트선언을 따로 안해주신것같은데 안해도 괜찮은건가요? 마지막으로 if(mode==0){ buf[0]=3; buf[1]=0; } // 30 // 15sec

    if(mode==1){ buf[0]=6; buf[1]=0; } // 60 // 10sec

    if(mode==2){ buf[0]=9; buf[1]=0; } // 90 // 5sec
이코드의 주석이 궁금합니다.ㅠㅠ 감사합니다!!

master님의 댓글

master 작성일

회로도에 스위치 A0,A1 릴레이 C0,C1으로 되어 있지 않나요?
입력포트는 리셋 디폴트 값이라서 안해도 됩니다.
모드에 따라서 30,60,90 넣어주는겁니다.

이민호님의 댓글

이민호 댓글의 댓글 작성일

네 회로도상으로 했습니다. 그런데 작동이 안됩니다..ㅠㅠ 배선도 10번이나 다시 해봤는데 혹시 스위치 쪽 저항이 너무 높은건가요?? A0포트 쪽 on/off스위치를 누르면 C0 릴레이 먼저 작동되서 15초 뒤에 꺼지고 C1 릴레이가 켜져야되는데 작동을 안합니다. 혹시 따로 아트메가 128보드에 5v를 넣어주는 코드선이 있는데 그것을 연결해서 그런건가요??? 배선이 반대로 되었을까봐 A1푸시 스위치도 눌러 봤는데 작동이 안됩니다..ㅠㅠ

master님의 댓글

master 댓글의 댓글 작성일

보드가 없는 사람은 디버깅을 할 수가 없습니다.
공부해서 직접 디버깅해보세요

이민호님의 댓글

이민호 댓글의 댓글 작성일

128보드를 이용해서 디버깅은 하였습니다

master님의 댓글

master 댓글의 댓글 작성일

디버깅은 회로와 소스코드에 문제가 없도록 수정하는 작업을 말합니다.

이민호님의 댓글

이민호 댓글의 댓글 작성일

어제 하루동안 열심히 공부를 했습니다. 부분부분 디버깅을 하려고하는데 처음이라서 제가 한동작씩 확인을 해봐야된다는것을 숙지하지 못했습니다.
그래서 그런데 5v릴레이 두개를 8Mhz를 이용해서 on/off 스위치(입력포트는 A0)를 이용하여 15초간간격으로 출력포트 C0릴레이를 먼저 켜주고 15초뒤에 출력포트C1릴레이를 켜주는 코드를 부탁드려도 될까요?

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

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은 질문게시판에서만 작성 가능합니다. 스태프 19-01-15 17158
공지 사이트 이용 안내댓글[28] master 17-10-29 33558
질문 아두이노 코딩 에러 질문댓글[1] 이미지새글첨부파일 박무농 23-03-25 25
질문 아두이노를 이용한 타이머, 태양전지 제어댓글[2] 새글 박무농 23-03-25 28
질문 sd카드 이미지 전송댓글[1] 던지기마스터 23-03-24 14
질문 초음파센서를 이용한 모터제어 질문있습니다.댓글[3] 이미지첨부파일 뉴비에오 23-03-24 38
질문 부품 관련 문의댓글[1] 타코 23-03-23 23
질문 모터 작동 시, 일부 모듈이 꺼지는 현상에 대해 질문드립니다. 이미지 그렇찌 23-03-22 32
답변 답변글 답변 : 모터 작동 시, 일부 모듈이 꺼지는 현상에 대해 질문드립니다. 이미지 master 23-03-23 21
질문 ESP로 원격 모터제어를 할 수 있나용?댓글[1] 비차 23-03-22 26
질문 HC06을 마스터로 설정하면 HC06끼리만 통신되나요?댓글[4] 비차 23-03-21 34
질문 아두이노 제어하기댓글[3] 매드닥터 23-03-19 56
질문 atmega128 압력센서 관련 질문입니다댓글[1] 공린이 23-03-19 65
질문 아두이노 스텝모터 각도제어 질문댓글[3] master 23-03-17 66
질문 아두이노와 파이썬(중점좌표) 시리얼 통신 질문드립니다.댓글[1] 이미지첨부파일 아두이노어렵잖아 23-03-16 51
질문 아두이노 3LED 버튼 관련 질문댓글[1] 이츤 23-03-16 51
질문 ATmega328p로 pca9685를 이용하여 서보모터(mg996r, mg90s)를 pwm로 제어 중 떨림댓글[1] 이미지첨부파일 토비 23-03-15 53
질문 hm-10 다중연결 질문있습니다.댓글[1] 첨부파일 뉴비에오 23-03-14 45
질문 while loop 실행 속도댓글[1] 412904 23-03-12 69
질문 AND 연산 질문드립니다.댓글[1] 412904 23-03-11 76
질문 아두이노 테트리스 게임댓글[1] 첨부파일 지욱애 23-03-02 157
질문 아두이노우노 블루투스 2개 연결댓글[1] dsfadfs 23-02-28 115
질문 스텝모터 코딩 질문입니다..댓글[2] 무야더싱 23-02-25 138
질문 아두이노 나노33 IOT 의 BLE 연결 문제 이미지 가루밀 23-02-24 80
질문 220V AC를 직류로 바꾸면 건전지 5V 건전지 55개를 대체할 수 있는건가요?댓글[1] hghh 23-02-22 103
질문 HM-10 모듈 사용하는데 질문있습니다.댓글[2] 뉴비에오 23-02-21 140
질문 아두이노 블루투스 관련 질문입니다. 생물공학도 23-02-21 106
답변 답변글 답변 : 아두이노 블루투스 관련 질문입니다. master 23-02-21 107
질문 자율주행 로봇을 만드는데 질문있습니다.댓글[2] 뉴비에오 23-02-18 174
질문 블루투스에서 아두이노로 신호전달에 대하여(2)댓글[1] 이미지첨부파일 밍경 23-02-14 198
게시물 검색

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