반응형

비트연산으로 LED를 켜는 방법은 아래에 있다.

https://ansan-survivor.tistory.com/1207

 

[Atmega128] 아트메가 비트연산으로 LED한칸씩 옮기기

(아래 직접 제작한 Atmega128 모듈으로 테스트를 진행했다.) https://ansan-survivor.tistory.com/1144 [PCB제작] OrCAD로 설계한 데이터를 JLCPCB를 통해 SMT 주문하기 ! (설계부터 PCB 주문 생산 까지) PCB제조..

ansan-survivor.tistory.com

 

여기에서는 Atmega128의 출력설정으로 LED를 나오게 하고 입력설정으로 스위치를 설정하여 스위치를 때고 있을 때와, 누르고 있을 때 토글하는 방법을 작성.

 

아래와 같이 버튼을 클릭하면 LED가 서로 왔다갔다 토글한다.

 

1. 출력 단자 구성하기

 - 출력핀 사용(LED 2개): PB0, PB2 

저항은 달기 귀찮아서 생략~

 

2. 입력 단자 구성하기

 - 입력핀 사용(스위치): PC0

 - Pull up 으로 사용. (아래 참고)

https://ansan-survivor.tistory.com/1213

 

풀업(pull up)과 풀다운(pull down) 원리, 시뮬레이션. 스위치 회로 (입력핀 스위치 구성)

아두이노나 Atmega128을 이용해 스위치를 이용한 입력회로를 구성할 때 Pull-up과 Pull-down 스위치 원리를 알고 구성해야 한다. 풀업, 풀다운을 하는 이유는? 만약 스위치를 아래와 같이 구성했다. 입

ansan-survivor.tistory.com

 

3. 간단한 토글 코드

반응형
#include <avr/io.h>
#include <util/delay.h>

int main()
{
	char LED = 0x01; // LED변수 초기값
	char SW = 0x01;  // SW변수 초기값
	
	DDRC = 0x00;  // PBn입력설정 (DDRn 은 입출력 레지스터)
	DDRB = 0xFF;  // PCn출력설정
	
	PORTC = SW; // PC0번 포트 사용 (스위치 입력으로 사용설정)
	
	while(1)
	{

		if ((PINC & SW) == 0x01)	
			PORTB = LED;			// Default 상태
		else
			PORTB = ~LED;			// 스위치를 누르면 작동. NOT Mask로 간단하게 토글
	}
	
	return 0;
}

 

단 이 코드는 스위치를 땔때와 누를때 두가지 경우의 토글이다.

 

 

 

 

 

반응형

+ Recent posts