답변 : DC모터랑 서보모터를 제어하려고 하는데 문제가 생겼습니다. 도와주세요
페이지 정보
작성자 master 작성일18-12-13 08:45 조회3,507회 댓글0건본문
// MCU BASIC: https://www.basic4mcu.com
// DateTime : 2018-12-13 오전 8:50:06
// by Ok-Hyun Park
//
// REMOCON
//
#include <io.h>
#include <delay.h>
//
unsigned char fwdFlg=0,bwdFlg=0,stopFlg=0;
//
void TX0_char(char c){ while(!(UCSR0A&0x20)); UDR0=c; }
//
void main(){
int i,old=0;
ADMUX=0x40; ADCSRA=0xE7;
UCSR0B=0x08; UBRR0L=103; // 16 MHz->9600 bps
while(1){
delay_ms(100);
//-----------------------------------
if(!PINB.0){ // fwd
if(!fwdFlg){ fwdFlg=1; TX0_char(190); delay_ms(100); }
}
else{ fwdFlg=0; }
//-----------------------------------
if(!PINB.1){ // bwd
if(!bwdFlg){ bwdFlg=1; TX0_char(191); delay_ms(100); }
}
else{ bwdFlg=0; }
//-----------------------------------
if(!PINB.2){ // stop
if(!stopFlg){ stopFlg=1; TX0_char(192); delay_ms(100); }
}
else{ stopFlg=0; }
//-----------------------------------
i=ADCW;
i=(int)((float)i*180.0/1023.0;); // 0~180으로 변환
if(old!=i){ old=i; TX0_char(i); }
}
}
// MCU BASIC: https://www.basic4mcu.com
// DateTime : 2018-12-13 오전 8:50:32
// by Ok-Hyun Park
//
// RC-CAR
//
#include <avr/io.h>
//
int main(void){
int r;
DDRD=0x1C; PORTD.4=1;
DDRB=0x02;
OCR1A=3000; ICR1=39999; TCCR1A=0x82; TCCR1B=0x1A;
UCSR0B=0x10; UBRR0L=103; // 16 MHz->9600 bps
while(1){
if(UCSR0A&0x80){
r=UDR0;
if (r==192){ PORTD.3=0; PORTD.2=1; }
else if(r==191){ PORTD.3=1; PORTD.2=0; }
else if(r==190){ PORTD.3=0; PORTD.2=0; }
else if(r<=180){ OCR1A=r*19+1200; }
}
}
}
댓글 : 0
조회수 : 3,507
등록된 댓글이 없습니다.