본문 바로가기
  • SpokeHouse
Microchip

Attiny - GPIO - control(High_Low)

by SpokeHouse 2024. 6. 28.
728x90
728x90

- 지난포스팅 

2024.06.03 - [Microchip] - 마이크로칩 MPLAB - 프로젝트 생성

 

마이크로칩 MPLAB - 프로젝트 생성

안녕하세요 스포크하우스 오토입니다.이번에는 마이크로칩사의 IDE 인 MPLAB프로젝트 생성에 대한 메모를 하도록 하겠습니다.처음 IDE를 실행하게 되면 해당 창을 볼수 있습니다상단 메뉴에서 new

spokehouse.tistory.com

지난 포스팅에 이어 이번에는 GPIO control을 진행하는 메모를 진행하고자 한다.

먼저 포트의 사용방향을 지정해줘야하는것으로 확인되었다. - 이번에 프로젝트를 진행하면서 알게된 사실이지만 st에 비해 너무 번거롭다.. 데이터시트도 사용방법이 복잡하니 양도 방대하여  전반적으로 읽기가 너무 힘들다.. 

8Pin mcu datasheet가 500페이지가 넘는다.. 앞으로 진행하면서 업로드하는 메모가 여러분들께  도움이 되면 좋겠다..

PORTA.DIRSET  = PIN1_bm; // 포트 A의 1번 핀을 output으로 사용하겠다

먼저 Output setting이다.

PORTA.DIRCLR	= PIN0_bm; //PortA의 0번 핀을 Input으로 사용하겠다

다음은 input설정이다.

여기까지하면 원하는 포트의 핀을 input, output으로  설정할 수  있게된다. 

원하는  함수 예) GPIO_init()등을 만들어 해당 부분을 init 하도록 하자 

다음은 실질적으로 Port를컨트롤 하는 부분이다

 PORTA.OUTSET = PIN1_bm; //PortA의 1번 핀을 출력 high로 설정

해당 포트.outset으로 진행한다. 여기서는 포트  A의 1번핀을 출력 high로 진행하는것을 나타낸다.

PORTA.OUTCLR = PIN7_bm; //PortA의 출력을  low로 설정

다음은 포트 A의 출력을 Low로 설정하는 부분이다.

PORTA.OUTTGL = PIN7_bm; //PortA의 7번핀을 토글

이부분은 7번핀을 토글 시키라는 부분이다.

위와 같은방법으로 사용하고자 하는포트의 핀의 DIR을 설정해주고,  .Out을 사용하여 출력을  High, Low로 설정해주면 잘 동작된다.

전체적으로는 아래와 같이 테스트 하였다.

#include <avr/io.h>
#include <util/delay.h>
#include "main.h"

void gpio_init(void) //GPIO_run_test
{
   PORTA.DIRSET  = PIN1_bm;//입출력 설정 -> 출력
   PORTA.DIRSET  = PIN6_bm;//입출력 설정 -> 출력
   PORTA.DIRSET  = PIN7_bm;//입출력 설정 -> 출력
   PORTA.DIRCLR	= PIN0_bm;//입출력 설정 -> 입력
   
   
   PORTA.OUTSET = PIN1_bm; //출력->High
   PORTA.OUTSET = PIN6_bm; //출력->High
   
 }
   
   
 
int main(void) 
{
    gpio_init();

    while(1)
    {

        PORTA.OUTTGL = PIN7_bm;
        _delay_ms(1000); // 1sec delay

    }
    
    return 0;
}

토글 사용을 위해  <util/delay.h>를 포함 시켜 주었다..

그럼이만 오늘도 맛있는것 많이 드시고 편안한 하루되시길

728x90
728x90

댓글