아트메가 128 을 이용해서적외선 센서 코딩 중 물어볼게있습니다!!
페이지 정보
작성자 noster 작성일22-05-21 19:32 조회1,570회 댓글5건본문
아트메가 128 을 이용해서 적외선 센서 코딩 하는중인데 궁금한점이 있어서 여기에 글을 올립니다!!
아트메가 128의 포트 c를 적외선 입력으로 받아서 포트A의 led를 제어하는 코딩 이 궁금합니다!
이것저거 해보고있는데 않되네요 ㅠㅠ
댓글 : 5
조회수 : 1,570
master님의 댓글
master 작성일
포트C로 입력을 받는다면 적외선 센서 모듈의 디지털 출력을 받는다는 것일텐데요
그렇다면 스위치 입력과 다를 바가 없습니다.
noster님의 댓글
noster
#include <avr/io.h>
void Led()
{
// Port C의 1번 입력을 받아서
// Port A의 1번 핀에 연결된 LED 제어
if (PORTC & 0x01)
PORTA = 0x00; //LED 끄기
else
PORTA = 0x01; //LED 켜기
// 필요하면 Port C와 Port를 확장.
}
int main(void)
{
DDRA = 0xff; //PORTA(LED)를 출력 설정
DDRC = 0x00; //PORTD(적외선 센서)를 입력 설정
while (1)
{
Led();
}
}
이런식으로 코드했는데 틀린부분 있는지 확인좀 해주시면 감사하겠습니다!!
master님의 댓글
master 작성일
if(PORTC&1) 입력은 PORT 레지스터를 사용하면 안되고
if(PINC&1) PIN 레지스터를 사용해야 합니다.
master님의 댓글
master 작성일
#include <avr/io.h>
//
void Led(){
if(PINC&1)PORTA=0; // Port C의 1번 입력을 받아서 //LED 끄기
else PORTA=1; //LED 켜기
}
//
int main(void){
DDRA=1; //PORTA(LED)를 출력 설정
//DDRC=0x00; //PORTD(적외선 센서)를 입력 설정
while(1){
Led();
}
}
master님의 댓글
master 작성일
#include <avr/io.h>
//
int main(void){
DDRA=1; // LED
while(1){
PORTA=(~PINC)&1; // PC0(적외선 센서) 입력을 받아서 //LED 끄기
}
}