BASIC4MCU | 질문게시판 | atmega128를 이용하여 코딩짜는것좀 도와주세요..
페이지 정보
작성자 구사자 작성일2019-07-09 16:17 조회4,935회 댓글1건본문
사진 첨부한거 처럼 불빛이 1-2-3-4 로 켜지는데
초록 주황 빨강 불빛이 순차적으로 켜지게 했습니다.
1번 신호등에서 초록 또는 주황불이 켜질때는
나머지 2.3.4는 빨간불이 들어오도록 짜놨습니다.
그런데 문제는 신호등 제어..?가 안되요
초록 주황 빨강이 한세트 인데
아트메가 2핀짜리 스위치를 눌르면 한세트에서 작동되는 시간이 지나고 다음세트로 넘어가는 시간을 무시하고
바로 다음 세트로 넘어가게 하고 싶은데 안되네요,,
스위치 하나로 하기 어려우면 4개 사용해서 할수있도록
코딩좀 짜주실분 구합니다... 도와주세요.
인터럽트를 사용해야될거같긴 한데.. 마음대로 안되네요 ㅠㅠ
#include
#include
int a=1,b,c=0,d=0;
void main (void)
{
EIMSK=0b00000010;
EICRA=0b00001000;
SREG=0x80;
DDRB=0xFF;
DDRE=0xFF;
while (1)
{
if (a==1)
{
PORTB=0x21;
PORTE=0x24;
a++;
d=0;
delay_ms(2000);
}
if (a==2)
{
PORTB=0x22;
PORTE=0x24;
a++;
delay_ms(1000);
}
if (a==3)
{
PORTB=0x24;
PORTE=0x24;
b++;
delay_ms(1500);
}
if (b==1)
{
PORTB=0x0C;
PORTE=0x24;
b++;
a=0;
delay_ms(2000);
}
if (b==2)
{
PORTB=0x14;
PORTE=0x24;
b++;
a=0;
delay_ms(1000);
}
if (b==3)
{
PORTB=0x24;
PORTE=0x24;
c++;
a=0;
delay_ms(1500);
}
if (c==1)
{
PORTE=0x21;
c++;
b=0;
delay_ms(2000);
}
if (c==2)
{
PORTE=0x22;
delay_ms(1000);
c++;
}
if (c==3)
{
PORTE=0x24;
delay_ms(1500);
d++;
}
if (d==1)
{
PORTE=0x0C;
delay_ms(2000);
c=0;
d++;
}
if (d==2)
{
PORTE=0x14;
delay_ms(1000);
c=0;
d++;
}
if (d==3)
{
PORTE=0x24;
delay_ms(1500);
c=0;
a++;
}
}
}
댓글 1
조회수 4,935master님의 댓글
master 작성일
질문의 설명만으로는 LED와 포트핀을 매치 시키지 못합니다.
스위치는 어느 포트에 연결되어 있을까요?
회로도를 첨부하시고 부족한 설명이 없는지 잘 체크해서
이해할 수 있도록 작성해주세요