외부풀업
/*
* 03_external_pullup.c
*
* Created: 2020-12-21 오후 6:55:00
* Author : User
*/
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
#define BUTTON1 PORTE0
#define BUTTON2 PORTE3
#define LED PORTB0
int main(void)
{
DDRE = 0x00;
DDRB = 0xff;
//DDRB = 1<<LED;
//DDRE = 1<<BUTTON1 | 1<<BUTTON2;
while (1)
{
if ( (!(PINE & (1<<BUTTON1))) | ( !(PINE & (1<<BUTTON2)) ) )
PORTB = 1<<LED;
else
PORTB &= ~(1<<LED);
/*if ( !(PINB & (1<<BUTTON2)) )
PORTB = 1<<LED;
else
PORTB &= ~(1<<LED); */
}
return 0;
}
내부풀업
atmega 128 내부 풀업 사용 방법 --------------------------------
DDRE = 0x00; // 입출력설정을 하고
PORTE = 0xFF; // FF로 설정을 해준다 - 풀업저항을 사용하겠다는 의미
코드는 위의 외부풀업 사용 코드와 같다 . 위의 두줄만 DDRE 선언 하는 main 내부 부분에 추가 해주면 됨.
/*
* 03_internal_pullup.c
*
* Created: 2020-12-22 오후 2:33:00
* Author : User
*/
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
#define BUTTON1 PORTE0
#define BUTTON2 PORTE3
#define LED PORTB0
int main(void)
{
DDRE = 0x00; // 입출력설정을 하고
PORTE = 0xFF; // FF로 설정을 해준다 - 풀업저항을 사용하겠다는 의미
DDRB = 0xFF;
while (1)
{
if ( (!(PINE & (1<<BUTTON1))) | ( !(PINE & (1<<BUTTON2)) ) )
PORTB = 1<<LED;
else
PORTB &= ~(1<<LED);
}
return 0;
}
'임베디드 > Atmega128' 카테고리의 다른 글
ATmega128 timer / counter (0) | 2020.12.27 |
---|---|
모터 L 298 (0) | 2020.12.23 |
atmega128- 03_external_pulldown 외부 풀다운 (0) | 2020.12.17 |
가져온 코드 (0) | 2020.12.15 |
도트매트릭스 8x8 숫자 0~9 띄우기 / 흐르게 하기 (0) | 2020.12.14 |