BASIC4MCU | 질문게시판 | AVR atmega128 블루투스모듈 hc-06 과 서보모터 sg90 코드의 잘못된 것좀 알려주세요
페이지 정보
작성자 어려운AVR 작성일2019-12-11 01:42 조회4,176회 댓글0건본문
#define F_CPU 8000000UL
#define __DELAY_BACKWARD_COMPATIBLE__
#include <avr/io.h>
#include <util/delay.h>
char rx_char(void) {
while((UCSR1A&0x80) == 0);
return UDR1; }
void tx_char(char tx_data){
while((UCSR1A&0x20) == 0);
UDR1 = tx_data; }
void RC_Motor(int angle){ // angle : -90도 ~ +90도
int i;
if(angle<-90)angle=-90;
if(angle> 90)angle= 90;
i=(angle)*18 + 3000;
OCR1A=i; //PB5
}
int main()
{
UCSR1A = 0x00;
UCSR1B = 0x18;
UCSR1C = 0x06;
UBRR1H = 0x00;
UBRR1L = 103;
DDRB = 0x20;
DDRD = 0xFF;
TCCR1A=0x82; // FAST PWM
TCCR1B=0x1A; // 8분주=0.5usec
OCR1A=3000; // 1500usec=0도
ICR1=39999; // 0.5usec*40000=20000usec=50Hz
unsigned char data;
while(1)
{
data = rx_char();
if(data == '1')
{
RC_Motor(-90); _delay_ms(1000);
}
if(data == '2')
{
RC_Motor( 0); _delay_ms(1000);
}
}
}
일단 수신 데이터만 받아보려고 하는데데이터 값은 수신이 안되는 것 같고서보모터는 계속 돌아가기만 합니다잘못된 점을 바로 잡아주시면 감사하겠습니다.
댓글 0
조회수 4,176등록된 댓글이 없습니다.