본문 바로가기
프로그래밍 언어

입력 출력 간단하게 구현하기(AVR input output)

by 청운추월 2023. 9. 14.
반응형
Atmel Studio 를 사용하다보면  Port 출력 및 입력이 조금 불편합니다.
다른 컴파일러 같은경우
 
PORTA.1 = 1 
 
이런식으로 가능하지만 Atmel Studio 의 경우는  지원하지 않아  복잡하죠
어떤곳은 Bit 를 Set 하거나 Clear 하는 함수를 사용하기도 합니다.
 
C언어에서 if 문 대신 간단하게 사용할 수 있는 삼항 연산자라는게 있습니다.
 
if문
 
if(비교)
{ 참}
else
{거짓}
 
삼항연산자
 
비교 ? 참 : 거짓
 
이걸간단하게 응용하면
 
#define outb(x,y,z)  (z ? (x |= (1<< y)) : (x &= ~(1<< y)))
#define inb(x,y)  ((x >> y) & 1)
 
사용법
Output
#define LED(x)    outb(PORTA,7,x)    //Port A 7번 핀
 
  LED(1);   // LED 켜기
  LED(0);   // LED 끄기
 

 

Input
#define SWITCH     inb(PINB,2)     //Port B 2번 핀
 
   if(SWITCH)
   {
 
    }
  
    int status = SWITCH;
 
위와 같이 사용가능합니다.
반응형

'프로그래밍 언어' 카테고리의 다른 글

printf 로 uart 출력방법(AVR)  (0) 2023.09.14
AVR EEPROM 읽고 쓰기  (0) 2023.09.14
[C#] 파일다이얼로그 , OpenFileDialog, SaveFileDialog  (0) 2023.08.14
volatile & Cache  (0) 2023.07.13
[DOS CMD] 환경변수 SET ECHO  (0) 2023.07.06