BASIC4MCU | 질문게시판 | atmega128 순차적신호 질문있습니다
페이지 정보
작성자 졸업예정 작성일2022-06-10 00:14 조회1,247회 댓글1건본문
#include <mega128.h>
#include <delay.h>
#define LED1 = PORTA.0
#define LED2 = PORTA.1
#define LED3 = PORTA.2
#define LED4 = PORTA.3
#define LED5 = PORTA.4
#define LED6 = PORTA.5
#define LED7 = PORTA.6
#define LED8 = PORTA.7
void main(void)
{
PORTA = 0x00;
DDRA = 0xFF;
while(1)
{
PORTA.0 = 0xff;
delay_ms(2000);
PORTA.0 = 0x00;
delay_ms(0);
PORTA.1 = 0xff;
delay_ms(2000);
PORTA.1 = 0x00;
delay_ms(0);
PORTA.2 = 0xff;
delay_ms(2000);
PORTA.2 = 0x00;
delay_ms(0);
PORTA.3 = 0xff;
delay_ms(2000);
PORTA.3 = 0x00;
delay_ms(0);
PORTA.4 = 0xff;
delay_ms(2000);
PORTA.4 = 0x00;
delay_ms(0);
PORTA.5 = 0xff;
delay_ms(2000);
PORTA.5 = 0x00;
delay_ms(0);
PORTA.6 = 0xff;
delay_ms(2000);
PORTA.6 = 0x00;
delay_ms(0);
PORTA.7 = 0xff;
delay_ms(2000);
PORTA.7 = 0x00;
delay_ms(0);
}
}
아래 조언 달아주신것을 토대로 코드를 작성해보았습니다 순차적으로 LED가 잘 점등돼었습니다 이것을 스위치를 누를경우 점등되는 순서가 반전출력되게 하고싶은데 방법이 있는지 질문드리고싶습니다 첨부드린 사진은 왼쪽부터 점등되는 회로도입니다
01:01분 추가 내용입니다
사용자 임의로 헤더파일을 만들어 본코드 본문에 추가시켜봤습니다
#include <mega128.h>
void main(void)
{
DDRA = 0xFF;
PORTA = 0xFF;
DDRC = 0x00;
PORTC = 0x00;
while(1)
{
PORTA = 0;
if (PINC.0 == 1)PORTA.0 = 1;
if (PINC.1 == 1)PORTA.1 = 1;
if (PINC.2 == 1)PORTA.2 = 1;
if (PINC.3 == 1)PORTA.3 = 1;
}
}
위와같이 스위치 작동코드를 만들어봤으나 Error: C:\cvavreval\BIN\plzend.c(18): function 'main' has already been defined in line: 17에러가 나오며 코드가 동작이 되질않았었습니다
댓글 1
조회수 1,247졸업예정님의 댓글
졸업예정 작성일본문엔 적지 못한내용이 있습니다 스위치 동작코드를 만들어 헤더파일로 만든후 추가시킬경우 동작이 되는지 의문이들어 질문드립니다