BASIC4MCU | 모터 | 서보모터 | RC서보 FAST PWM 모드14 구동 - UART 통신
페이지 정보
작성자 키트 작성일2017-09-05 16:57 조회1,057회 댓글0건본문
//=====================================================================//
//RC서보 - 타이머1 FAST PWM MODE14로 구동
//=====================================================================//
//전체 주기 20000usec중애서 아래 시간 만큼 high를 주면 해당 각도로 이동
// 600usec=-90도 포지션
//1500usec= 0도 포지션
//2400usec=+90도 포지션
//=====================================================================//
// 코드비젼 컴파일러
//=====================================================================//
// 코드 최적화 금지
#pragma opt-
//=====================================================================//
#include <mega128.h> //16MHz
#include <delay.h>
//=====================================================================//
interrupt [USART0_RXC] void usart0_rx_isr(void){char ch;
ch=UDR0;
if (ch=='0')OCR1A=-90*18 + 3000;
else if(ch=='1')OCR1A=-70*18 + 3000;
else if(ch=='2')OCR1A=-50*18 + 3000;
else if(ch=='3')OCR1A=-30*18 + 3000;
else if(ch=='4')OCR1A=-10*18 + 3000;
else if(ch=='5')OCR1A= 10*18 + 3000;
else if(ch=='6')OCR1A= 30*18 + 3000;
else if(ch=='7')OCR1A= 50*18 + 3000;
else if(ch=='8')OCR1A= 70*18 + 3000;
else if(ch=='9')OCR1A= 90*18 + 3000;
}
//=====================================================================//
void main(void){
//RC서보모터
DDRB=0x20; // PB5 out
TCCR1A=0x82; TCCR1B=0x1A; OCR1A=3000; ICR1=47999;
//
UCSR0B=0x98; UBRR0L=103; // 9600 @16MHz
//
SREG=0x80;
while(1){
}
}
//=====================================================================//
댓글 0
조회수 1,057등록된 댓글이 없습니다.