BASIC4MCU | 질문게시판 | 답변 : 글을 늦게 봤습니다.
페이지 정보
작성자 master 작성일2018-12-25 16:30 조회5,713회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=7244
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-12-25 오후 4:35:33// by Ok-Hyun Park//#include <mega128.h>#include <delay.h>//#define DIGIT PORTB // PB0~PB3#define FND PORTA//#define DC_M_2 PORTB.4#define DC_M_1 PORTB.5#define DC_M_3 PORTB.6#define DC_M_4 PORTB.7//#define STEP_M PORTC//#define LED PORTE//unsigned int t3[]={0,749,1499,2249,2999,3749,4499,5249,5999,6750,7499}; // 3ms~30ms, 3ms 단위로 증가//char fnd[18]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x98,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x7f,0xff};char buf[ 4]={0xFF,0xFF,0xFF,0xFF};//char speed=0;//bit flag0=0,flag1=0;//void set_seg(){char s;s=speed*10;buf[0]=fnd[17];if(s==10){ buf[1]=fnd[ 1]; buf[2]=fnd[0]; }else { buf[1]=fnd[17]; buf[2]=fnd[n]; }buf[3]=fnd[0];}//interrupt[TIM0_OVF]void timer0_overflow(void){ // 1msstatic char c=0;char dgt[]={0x07,0x0B,0x0D,0x0E};//TCNT0=131;//FND=buf[c];DIGIT=(FND&0xF0)|dgt[c];if(++c>3)c=0;}//interrupt [TIM3_COMPA] void timer3_compa_isr(void){ // 3ms~30ms, 3ms 단위로 증가static char s=0;//STEP=8>>s;if(++s>3)s=0;}//void main(void){PORTA=0xFF; DDRA=0xFF; // 7segment segPORTB=0xFF; DDRB=0xFF; // 7segment digit // PB4~PB7=DCMPORTB=0x00; DDRE=0xFF; // step motor//TCCR0=0x05; TCNT0=131; TIMSK=0x01; // 16000000Hz/128/(256-131)=1000Hz,1msTCCR1A=0xA2; TCCR1B=0x1A; ICR1L=100; // DC모터 Fast PWM // PB5=DCM_IN1, PB6=DCM_IN3ETIMSK=0x10; // step 모터 3ms~30msSREG=0x80;while(1){if(PIND.0){if(flag0==0){ flag0=1;if(speed<10)speed++;//set_seg();//LED=(1<<speed)-1;//if(speed==0){OCR1AL=OCR1BL=0; // DC motor PWMTCCR3B=0; // step motor}else{OCR1AL=OCR1BL=speed*10; // DC motor PWMTCCR3B=0x0B; OCR3AH=t3[speed]>>8; OCR3AL=t3[speed]&0xFF; // step motor}}}else{ flag0=0; }//----------------------------if(PIND.1){if(flag1==0){ flag1=1;if(speed>0)speed--;//set_seg();//LED=(1<<speed)-1;//if(speed==0){OCR1AL=OCR1BL=0; // DC motor PWMTCCR3B=0; // step motor}else{OCR1AL=OCR1BL=speed*10; // DC motor PWMTCCR3B=0x0B; OCR3AH=t3[speed]>>8; OCR3AL=t3[speed]&0xFF; // step motor}}}else{ flag1=0; }}}
처음 질문처럼 작성했습니다.
잘 분석해서 원하는대로 수정해보세요
댓글 0
조회수 5,713등록된 댓글이 없습니다.