RENESAS - 버튼 설정(Interrupt)
2022. 1. 28. 20:57ㆍ전공공부/마이크로프로세서 윈터캠프
성균관대학교 윈터캠프 <마이크로프로세서 - 전재욱 교수님>에서 실습한 내용 중 일부다.
Renesas RA6M3(176 pin) 계열의 칩을 선택했다. 그리고 IDE는 E2 studio를 활용했다.
Interrupt란 수행중인 일을 멈추고 I/O 장치의 요구사항을 수행하는 역할을 진행한다. 스위치를 누를 때 수행중이던 while문에서 벗어나 콜백함수를 진행한다. 스위치를 수행하기 위해선 stacks configuration을 진행해야한다.
- stacks configuration

Input -> external IRQ인 new stack을 만든다.
name과 channel을 다음과 같이 설정하고 그리고 callback 함수를 지정해준다. 그리고 priority 12는 Interrupt의 우선순위를 의미한다. 또한 연결할 핀을 설정한다. 여기서는 회로에 맞게 006으로 설정했다.
- code
void R_IRQ_11interrupt(external_irq_callback_args_t *p_args){
FSP_PARAMETER_NOT_USED(p_args);
stopkey = 1;
Segments_Write(cnt);
}
이런식으로 콜백함수 안에 내가 원하는 대로 작동하도록 만들 수 있다. 즉 스위치를 누르면 다음 콜백함수를 작동시킨다.
R_IOPORT_Open(&g_ioport_ctrl, &g_bsp_pin_cfg);
R_ICU_ExternalIrqOpen(&g_external_irq11_ctrl, &g_external_irq11_cfg);
R_ICU_ExternalIrqEnable(&g_external_irq11_ctrl);
다음은 main함수에서 setting할 내용이다. IOPORT를 open하고 externalIrq를 Open, externalIrq를 동작하도록 enable한다. 그래야 스위치를 눌렀을 때 callback 함수를 불러 작동시킬 수 있다.
'전공공부 > 마이크로프로세서 윈터캠프' 카테고리의 다른 글
RENESAS - DAC, audio conversion (0) | 2022.02.02 |
---|---|
RENESAS - 실습1 (0) | 2022.02.02 |
RENESAS - AGT timer 설정 (0) | 2022.01.28 |
RENESAS - 7 segment(FND) 제어 (0) | 2022.01.28 |
RENESAS - LED 제어 (0) | 2022.01.28 |