질문게시판 > atmega128 코드질문드려요

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

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

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

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

BASIC4MCU > 질문게시판

atmega128 코드질문드려요

페이지 정보

작성자 atmegaga 작성일18-12-20 21:23 조회30,232회 댓글8건

본문

#define F_CPU 7372800UL // 7.3728 MHz

#include <avr/io.h>

#include <avr/interrupt.h>

#include <util/delay.h>

//

signed char mot_cnt=0,val=0;

//

unsigned char FND_DATA_TBL[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7C,0x07,0x7F,0x67,0x77,0x7C,0x39,0x5E,0x79,0x71,0x08,0x80};

unsigned char MOTOR[]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09}; //1-2상 여자
volatile char direction = 1;

//

ISR(TIMER0_COMP_vect){ // 22.2ms

  //

  if((PIND&1)==0){ // sw0
   direction ++;


    if(--mot_cnt<0)mot_cnt=7; // Right

    if(++val>7)val=0; // FND 증가

    PORTB=0xFF;       // LED on

    PORTE=0x08;       // Buzzer on
 
 
  PORTF = FND_DATA_TBL[val];
  PORTC=MOTOR[mot_cnt];

  }

 
  //

  if((PIND&2)==0){ // sw1
 direction --;

    if(++mot_cnt>7)mot_cnt=0; // left

    if(--val<0)val=7; // FND 감소

    PORTB=0x00;       // LED off

    PORTE=0x00;       // Buzzer off

 val -= direction; 
 

  }
  PORTF = FND_DATA_TBL[val];
  PORTC=MOTOR[mot_cnt];
}

//

int main(){

  DDRF=0xFF; // FND
  DDRB=0xFF; // LED


  DDRC=0x0F; // STEP MOTOR

  DDRE=0x08; // Buzzer on

  TCCR0=0x0F; OCR0=159; TIMSK=2; // 7372800/1024/160=45Hz=22.2ms

  SREG=0x80;

  while(1);

 

 

한백mcu멀티키트로 코딩연습중입니다. 앞전에 코드수정해주신걸로 이것저것 해보고있는데

스위치 0을 누르면 모터가 우측으로 정방향, 1을 누르면 좌측으로 역방향되면서 LED에 불이 켜지고

부저가 울리는 소스인데요 저기서 정회전시 FND 숫자가 올라가고 역회전이 기존소스+FND숫자가 내려가는 소스를 해보려고 수정에 수정을 거듭했는데 FND 가 제대로 안떠요 오른쪽 왼쪽 누르면 부저와 LED는 다 작동이되는데 FND 숫자가 제대로 안보이네요;

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

댓글 : 8

조회수 : 30,232

master님의 댓글

master 작성일

퓨즈비트 설정에서 JTAG가 체크되어 있는 경우에는 PF4~PF7이 JTAG로 할당 되기 때문에 다른 용도로 사용하지 못합니다.
JTAG 사용하지 않는다면 JTAG 체크를 해제하세요

atmegaga님의 댓글

atmegaga 댓글의 댓글작성일

FND가 이제 선명하게 뜨긴하는데 모터와 FND 회전수가 맞는지 안맞는지 둘다 너무 빨라서
잘모르겠네요 모터회전수는 0CR0로 맞추는건 되는데 FND도 같이 맞추려면
delay를 넣어야 할까요?

master님의 댓글

master 댓글의 댓글작성일

mot_cnt와 val는
증가와 감소로 서로 다르자나요?
애당초 질문이 증가 감소가 다르게 하겠다고 했었죠

master님의 댓글

master 작성일

    if(++val>7)val=0; // FND 증가
    if(--val<0)val=7; // FND 감소
위 코드 삭제하고

  PORTF = FND_DATA_TBL[mot_cnt]; // mot_cnt를 출력하세요

atmegaga님의 댓글

atmegaga 작성일

해당 소스 지웠는데 FND는 더욱 선명해진거 확인했구요 속도에는 변화가 전혀 없어요 ㅠㅠ
그리고 sw0을 계속 누르면 숫자가 9로 갔다가 다시 0으로 오는데 9 즉 최고숫자에서 더이상 안올라가게할수도있나요?

master님의 댓글

master 댓글의 댓글작성일

SW0 과 SW1 은 속도를 내리고 올리는 것이 아니고
SW0 누르고 있는 동안 역회전
SW1 누르고 있는 동안 정회전
이런식으로 구동되고 있는 겁니다.
속도를 변화시키려면 스위치를 추가해야 합니다.

atmegaga님의 댓글

atmegaga 작성일

그럼 정회전일떄 숫자증가가 9에서 더이상 안올라가게 설정하고 역회전시 0에서 더이상 안내려가게 하는건 스위치 말고 못하나요?

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[25] master  17-10-29
질문 lcd 1602에 특수문자를 출력하는 방법을 알고싶습니… 댓글[3] dndktn 새글 22-08-12
질문 stm32 wifi 파일전송 댓글[2] 하리 새글 22-08-11
질문 회로 구성 수정 댓글[2] 첨부파일픽공부 새글 22-08-11
질문 아두이노 와이파이통신 질문 있습니다 댓글[1] 학생 새글 22-08-11
질문 포토다이오드와의 연결 질문합니다. 댓글[7] 첨부파일박윤모  22-08-10
질문 회로 구성 댓글[4] 픽공부  22-08-10
질문 아두이노 센서, 와이파이, 블루투스 연결 댓글[1] pattern  22-08-10
질문 PIC 블루투스 연결 댓글[19] 픽공부  22-08-09
질문 PIC18F452 블루투스 연결 댓글[4] 마이컴  22-08-08
질문 아두이노 코드 해석을 못하겠습니다... 댓글[2] 김가헌  22-08-08
질문 아두이노 코드를 avr로 변환해 주세요 ...ㅠ 댓글[3] 옹냥냥  22-08-08
질문 아두이노 녹음-스피커모듈 관련 질문있습니다 ㅠㅠ 댓글[2] 방귀뿡뿡  22-08-08
질문 Serial EEPROM 실수값 저장.. 댓글[2] 첨부파일광이  22-08-07
질문 STM32 Live Expression 값들이 깜빡이는… 댓글[3] 둠둠  22-08-05
질문 아두이노 ESP32 wifi module 댓글[1] Yoon  22-08-03
질문 atmega128과 dht11, lcd를 연결했는데 0… 댓글[1] 고양이33  22-08-02
질문 ATMEGA 128 코드를 합치려고 하는데 어렵네요 댓글[2] 고양이33  22-08-02
질문 서보모터 제어에 대해 질문있습니다. 댓글[2] 첨부파일뉴비에오  22-07-30
질문 적외선 통신 알려주실분있나요 ㅠㅠ 댓글[1] hkjsj10  22-07-30
질문 아두이노 관련 궁금합니다. 댓글[1] 뱝뱝  22-07-28
질문 아두이노 우노 MCP4725 댓글[3] opqr  22-07-27
질문 레오나르도 인체감지센서 알림 안옴 면지지  22-07-24
답변 답변 : 레오나르도 인체감지센서 알림 안옴 master  22-07-25
질문 Uno에서 엔코더값 놓치는 이유가 뭘까요... 댓글[3] MAKTUB  22-07-24
질문 아두이노 압력센서 연동 질문 댓글[4] dbice  22-07-23
질문 아두이노 버튼 누르기 문의 댓글[1] 김형근  22-07-23
질문 HM10 다중페어링 댓글[1] ㅎㅋㅎㅋㅎ  22-07-22
질문 모터드라이브 선정 댓글[6] 조숩인  22-07-22
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전