아트메가128>LED불,소리 켜기
페이지 정보
작성자 세계제일초보 작성일19-11-16 17:16 조회3,992회 댓글0건본문
선생님 !!! 안녕하세요
그전에는 오버플로우를 이용해서 LED를 4개씩 좌 , 우로 이동 하는 거는 선생님께 배웠습니다 그리고 반복숙달 하고 있습니다!!
본질문 들어 가기전에 하나 궁긍한점이 있습니다.
if(PORTA!=0xf0)
{
PORTA=0xf0;
else
POTA=0x0f;
하셨는데.. PORTA는 초기값을 입력을 않하면 0X00으로 설정 되는건가요!!.?
이번에는 LED 좌우 가면서 '좌'쪽으로 LED가가면 '도' , '우'쪽으로 가면 '레'소리를 나는 프로그램을 생각을 해서 만들어봤습니다..
(소리는 예제문에 있어서 보고 참고 했습니다.)
LED만 4개만 켜있고 소리(?) 아무 반응이 없습니다.. 체크만 해주시면 한번 수정을 해보겠습니다..!!
#include <avr/io.h>
#include <avr/interrupt.h>
#define ON 1
#define OFF 0
#define DO_DATA 17
#define RE_DATA 43
volatile int state=OFF;
volatile int count=0;
ISR(TIMER0_OVF_vect)
{
if(++count>=30)
{
count=0;
TCNT0=DO_DATA;
if(state==OFF)
{
PORTB|=1<<4;
state=ON;
if(PORTA!=0xf0)
PORTA=0xf0;
}
else
{
TCNT0=RE_DATA;
PORTB&=~(1<<4);
state=OFF;
if(PORTA!=0xf0)
PORTA=0x0f;
}
}
}
int main ()
{
DDRA=0xff;
DDRB|=0x10;
TCNT0=DO_DATA; << 2개사용해야되나요?
TCNT0=RE_DATA;
TCCR0=3;
sei();
TIMSK=1;
while (1);
}
댓글 : 0
조회수 : 3,992
등록된 댓글이 없습니다.