질문게시판 > Atmega128 블루투스 오류 질문

인기검색어 > 아두이노 센서 ATMEGA128

최신글 질문게시판 동영상강좌 가입하기

▼ BASIC4MCU 후원업체 신제품 정보 ▼

▲ BASIC4MCU 후원업체 신제품 정보 ▲

BASIC4MCU > 질문게시판

Atmega128 블루투스 오류 질문

페이지 정보

작성자 yhj2644 작성일22-05-26 01:35 조회1,521회 댓글0건

본문

기존에 아트메가를 통해 PWM파형을 만들고 스위치 3개를 이용해 하나는 on/off , 나머지 두 개는 주파수를 변경하는 코딩에

블루투스를 이용해 스위치 on/off를 제어하려고 하였는데 블루투스 기능이 가능해지자 스위치가 동작하지 않는데

제가 아직 배우고있는 과정이라 이유를 잘 모르겠습니다. 한번만 도와주세요 ㅠㅠ

 

#include <avr/io.h>

#include <util/delay.h>

#include <avr/interrupt.h> 

#define F_CPU 16000000UL 

volatile unsigned char flag;

 

unsigned char top;

unsigned int old_pind0 = 0;

unsigned int now_pind0 = 1;

unsigned int old_pind1 = 0;

unsigned int now_pind1 = 1;

unsigned int old_pind2 = 0;

unsigned int now_pind2 = 1;

 

unsigned int LED_Flag = 0;

double Freq;

 

    unsigned int  KEY_CNT = 0 ;

 

#define Array_EA sizeof(SineTable) / sizeof(SineTable[0]) //배열개수 계산

#define SYS_CLK     16e6                                        // 클럭 주파수

#define FRESCALE    128                                        // 분주비

#define EIGHT_BIT  0x100                                        // (256)

    #define TIME_GAP2    1e-3                                       // 1(ms)

    #define AUTO_REROAD2 EIGHT_BIT-TIME_GAP2 * SYS_CLK/FRESCALE     // 1m 마다 오버플로우 발생

 

ISR(USART0_RX_vect)

{

    flag=UDR0;

}

void init() 

{

    DDRA=0xff; // 출력핀 설정

    UCSR0A=0x00;

    UCSR0B=0x98;

    UCSR0C=0x06;

    UBRR0H=0;

    UBRR0L=103; // 8MHz : 51

}

 

void KEY_SCAN(void)

{

now_pind0 = !(~PIND & 0x01); //PD0: 스위치 누르면 now_pin=1

now_pind1 = !(~PIND & 0x02); //PD0: 스위치 누르면 now_pin=0

now_pind2 = !(~PIND & 0x04); //PD2

        init();

 

if(old_pind0 ==1 && now_pind0 ==0)

{

Freq -= 1e3; //1k씩 주파수 감소

top = 16e6/(2*1*Freq);

TCCR3A = 0x2D;

TCCR3B = 0x11;

OCR3A = top;

OCR3B = (top/2);

OCR3C = (top/2);

 

}

 

else if(old_pind1 ==1 && now_pind1 ==0)

{

Freq += 1e3;

top = 16e6/(2*1*Freq); // 1k씩 주파수 증가

TCCR3A = 0x2D;

TCCR3B = 0x11;

OCR3A = top;

OCR3B = (top/2);

OCR3C = (top/2);

}

 

else if(old_pind2 == 1 && now_pind2 ==0)

{

if(LED_Flag == 0) //PWM On

{

PORTB = 0x01;

Freq = 210000;

top=16e6/(2*1*Freq);

TCCR3A = 0x2D;

TCCR3B = 0x11;

LED_Flag = 1;

}

else //PWM off (LED_Flag = 1)

{

PORTB = 0x00;

top=0;

TCCR3A = 0x00;

TCCR3B = 0x00;

 

LED_Flag = 0;

}

OCR3A = top;

OCR3B = (top/2);

OCR3C = (top/2);

}

    old_pind0 = !(~PIND & 0x01);

old_pind1 = !(~PIND & 0x02);

old_pind2 = !(~PIND & 0x04); 

if (flag == 'G')

            { 

if(LED_Flag ==0)  

{

PORTB = 0x01;

Freq = 210000;

top=16e6/(2*1*Freq);

TCCR3A = 0x2D;

TCCR3B = 0x11;

LED_Flag = 1;

            OCR3A = top;

OCR3B = (top/2);

OCR3C = (top/2);

}    

  }

 

      else if (flag == 'Q')

           {  

    if(LED_Flag ==1)

PORTB = 0x00;

top=0;

TCCR3A = 0x00;

TCCR3B = 0x00;

LED_Flag = 0;

OCR3A = top;

OCR3B = (top/2);

OCR3C = (top/2);

}

 

 

}

 

 

 

 

SIGNAL(SIG_OVERFLOW2)

{

   TCNT2 = AUTO_REROAD2; //1m마다 오버플로우 발생

 

if(KEY_CNT++==50) // 50m 때마다 실행. 

        {

 

            KEY_CNT=0;        // 키 스캔 카운터 초기화

KEY_SCAN();         // 키 스캔 함수 실행

        } 

}

 

 

int main(void) 

{

DDRD = 0x00; //스위치 이므로 입력으로 설정 D포트 입력설정

DDRB = 0xFF; // PWM핀으로 출력으로 설정

PORTB = 0x00; // 초기값 0

PORTD = 0x00;

DDRE = 0x30;    //4,5포트 출력

TIMSK = 0x40;

TCCR2 = 0x03;           //Normal 모드 , 분주비 : 1/1024 --->64분주비??

    TCNT2 = AUTO_REROAD2; 

sei();  

        while(1);   

}

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기
  • 카카오톡으로 보내기

댓글 : 0

조회수 : 1,521

등록된 댓글이 없습니다.

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[25] master  17-10-29
질문 PIC18F452 블루투스 연결 댓글[4] 마이컴 새글 22-08-08
질문 아두이노 코드 해석을 못하겠습니다... 댓글[2] 김가헌 새글 22-08-08
질문 아두이노 코드를 avr로 변환해 주세요 ...ㅠ 댓글[3] 옹냥냥 새글 22-08-08
질문 아두이노 녹음-스피커모듈 관련 질문있습니다 ㅠㅠ 댓글[2] 방귀뿡뿡 새글 22-08-08
질문 Serial EEPROM 실수값 저장.. 댓글[2] 첨부파일광이 새글 22-08-07
질문 STM32 Live Expression 값들이 깜빡이는… 댓글[3] 둠둠  22-08-05
질문 아두이노 ESP32 wifi module 댓글[1] Yoon  22-08-03
질문 atmega128과 dht11, lcd를 연결했는데 0… 댓글[1] 고양이33  22-08-02
질문 ATMEGA 128 코드를 합치려고 하는데 어렵네요 댓글[2] 고양이33  22-08-02
질문 서보모터 제어에 대해 질문있습니다. 댓글[2] 첨부파일뉴비에오  22-07-30
질문 적외선 통신 알려주실분있나요 ㅠㅠ 댓글[1] hkjsj10  22-07-30
질문 아두이노 관련 궁금합니다. 댓글[1] 뱝뱝  22-07-28
질문 아두이노 우노 MCP4725 댓글[3] opqr  22-07-27
질문 레오나르도 인체감지센서 알림 안옴 면지지  22-07-24
답변 답변 : 레오나르도 인체감지센서 알림 안옴 master  22-07-25
질문 Uno에서 엔코더값 놓치는 이유가 뭘까요... 댓글[3] MAKTUB  22-07-24
질문 아두이노 압력센서 연동 질문 댓글[4] dbice  22-07-23
질문 아두이노 버튼 누르기 문의 댓글[1] 김형근  22-07-23
질문 HM10 다중페어링 댓글[1] ㅎㅋㅎㅋㅎ  22-07-22
질문 모터드라이브 선정 댓글[6] 조숩인  22-07-22
질문 ad9850 sin파 2 댓글[6] 첨부파일opqr  22-07-21
질문 ad9850 sin파 합성 댓글[7] 첨부파일opqr  22-07-20
질문 특정값이 n초이상,n번 이상 연속될경우를 감지하는 함수… 댓글[4] 우수  22-07-17
질문 delay를 millis함수로 바꾸는데 질문있습니다. 댓글[12] 첨부파일뉴비에오  22-07-16
질문 피에조 부저로 맬로디 만들기인대 코딩 까지 했는데 아두… 댓글[2] 첨부파일mingu123  22-07-15
질문 블루투스와 안드로이드 연동관련 질문입니다! ㅎㅇㅎㅇ  22-07-14
질문 아두이노간 블루투스 통신에 대해서 질문있습니다 첨부파일뉴비에오  22-07-13
답변 답변 : 아두이노간 블루투스 통신에 대해서 질문있습니다 댓글[3] master  22-07-14
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전