BASIC4MCU | 질문게시판 | 답변 : atmega128 코드질문드려요
페이지 정보
작성자 master 작성일2018-12-20 22:58 조회13,548회 댓글1건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=7154
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-12-20 오후 11:05:36// by Ok-Hyun Park//#define F_CPU 7372800UL // 7.3728 MHz#include <avr/io.h>#include <avr/interrupt.h>#include <util/delay.h>//volatile unsigned char FND_DATA_TBL[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7C,0x07,0x7F,0x67,0x77,0x7C,0x39,0x5E,0x79,0x71,0x08,0x80};volatile unsigned char MOTOR[]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09}; //1-2상 여자//volatile signed char mot_cnt=0;volatile unsigned char dir=0,run=0,speed=0;//volatile unsigned char speed_table[]={ 159,144,128,112,96,80,64,48,32,16};//void speed_disp(){OCR0=speed_table[speed];PORTF=FND_DATA_TBL[speed];}//ISR(TIMER0_COMP_vect){ // 22.2msif(run){if(dir){if(--mot_cnt<0)mot_cnt=7; // RightPORTB=0xFF; // LED onPORTE=0x08; // Buzzer on}else{if(++mot_cnt>7)mot_cnt=0; // leftPORTB=0x00; // LED offPORTE=0x00; // Buzzer off}PORTC=MOTOR[mot_cnt];}}//volatile char flag0=0,flag1=0,flag2=0,flag3=0;//ISR(TIMER1_COMPA_vect){if(!(PIND&0x01)){ // sw0if(flag0==0){ flag0=1; dir^=1; }}else{ flag0=0; }//--------------------if(!(PIND&0x02)){ // sw1if(flag1==0){ flag1=1; run^=1; }}else{ flag1=0; }//--------------------if(!(PIND&0x04)){ // sw2if(flag2==0){ flag2=1; if(speed<9)speed++; speed_disp(); }}else{ flag2=0; }//--------------------if(!(PIND&0x08)){ // sw3if(flag3==0){ flag3=1; if(speed>0)speed--; speed_disp(); }}else{ flag3=0; }//--------------------}//int main(){PORTD=0xFF; // 스위치DDRF=0xFF; // FNDDDRB=0xFF; // LEDDDRC=0x0F; // STEP MOTORDDRE=0x08; // Buzzer onspeed_disp();//TCCR0=0x0F; OCR0=159; TIMSK=0x02; // 7372800/1024/160=45Hz=22.2msTCCR1B=0x0C; OCR1A=6249; TIMSK|=0x10; //100msSREG=0x80;while(1);}
댓글 1
조회수 13,548atmegaga님의 댓글
atmegaga 작성일소스 변형 정말 감사합니다.