헤더 선언부분에서 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 |