반응형
비트연산으로 LED를 켜는 방법은 아래에 있다.
https://ansan-survivor.tistory.com/1207
여기에서는 Atmega128의 출력설정으로 LED를 나오게 하고 입력설정으로 스위치를 설정하여 스위치를 때고 있을 때와, 누르고 있을 때 토글하는 방법을 작성.
아래와 같이 버튼을 클릭하면 LED가 서로 왔다갔다 토글한다.
1. 출력 단자 구성하기
- 출력핀 사용(LED 2개): PB0, PB2
2. 입력 단자 구성하기
- 입력핀 사용(스위치): PC0
- Pull up 으로 사용. (아래 참고)
https://ansan-survivor.tistory.com/1213
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;
}
단 이 코드는 스위치를 땔때와 누를때 두가지 경우의 토글이다.
반응형
'펌웨어 (firmware) > Atmega' 카테고리의 다른 글
[Atmega 128] 아트메가 128 인터럽트 벡터 표 (interrupt vector table) (0) | 2022.01.25 |
---|---|
[Atmega128] 아트메가 LED 스위치로 비트연산 옮기기 (Switch 클릭 LED 한칸씩 움직이기) (0) | 2022.01.22 |
[Atmega128] 아트메가 비트연산 LED 좌우로 반복 움직이기 (0) | 2022.01.17 |
[Atmega128] 아트메가 비트연산으로 LED한칸씩 옮기기 (0) | 2022.01.16 |
[Atmega] Atmega128 기본 공개 모듈 회로도 및 PCB 설계도 (0) | 2021.11.22 |