헤더 선언부분에서 LED 포트로 사용할 PTD15,16,0번포트와 PTC12,13

#include "S32K144.h"
#include "device_registers.h"

#define PTD15 15
#define PTD16 16
#define PTD0 0

#define PTC12 12
#define PTC13 13

 

 

 

 

 

Switch포트의 MUX bits를 설정하여 해당 핀이 GPIO로 사용될 수 있도록 한다.

PCC-> PCCn[PCC_PORTC_INDEX] |= PCC_PCCn_CGC_MASK;

PORTC->PCR[12] &= ~PORT_PCR_MUX_MASK;
PORTC->PCR[12] |= PORT_PCR_MUX(1);
PTC->PDDR &= ~(1<<PTC12);



PORTC->PCR[13] &= ~PORT_PCR_MUX_MASK;
PORTC->PCR[13] |= PORT_PCR_MUX(1);
PTC->PDDR &= ~(1<<PTC13);

 

 

 

 

LED 포트의 MUX bits를 설정하여 해당 핀이 GPIO로 사용될 수 있도록 한다.

PCC-> PCCn[PCC_PORTD_INDEX] |= PCC_PCCn_CGC_MASK;

PORTD->PCR[0] &= ~PORT_PCR_MUX_MASK;
PORTD->PCR[0] |= PORT_PCR_MUX(1);

PTD->PDDR |= 1<<PTD0; /////Blue

PORTD->PCR[15] &= ~PORT_PCR_MUX_MASK;
PORTD->PCR[15] |= PORT_PCR_MUX(1);

PTD->PDDR |= 1<<PTD15; /////Red

PORTD->PCR[16] &= ~PORT_PCR_MUX_MASK;
PORTD->PCR[16] |= PORT_PCR_MUX(1);

PTD->PDDR |= 1<<PTD16;  /////Green

 

 

main 문에서는 해당 스위치가 입력됨에따라 다른 LED 색을 출력하도록 하였다.

for(;;){
	 if((PTC->PDIR & (1<<PTC12)) &&(PTC->PDIR & (1<<PTC13)) ){
				PTD-> PCOR |= 1<<PTD16;
	}else{
		PTD-> PSOR |= 1<<PTD16;

	}

	 if((PTC->PDIR & (1<<PTC12)) && !(PTC->PDIR & (1<<PTC13)) ){

		PTD-> PCOR |= 1<<PTD0;
	}else{
		PTD-> PSOR |= 1<<PTD0;
	}


	if(!(PTC->PDIR & (1<<PTC12)) && (PTC->PDIR & (1<<PTC13)) ){
			PTD-> PCOR |= 1<<PTD15;
		}else{
			PTD-> PSOR |= 1<<PTD15;
		}
}

 

 

 

 

 

실행화면

'NXP&S32DesignStudio' 카테고리의 다른 글

전자시계 만들기  (0) 2021.01.17
PWM  (0) 2021.01.17
ADC  (0) 2021.01.17
Timer Interrupt  (0) 2021.01.17