C-First 보드를 e2 studio의 GCC로 인터럽트를 사용해보기
e2 스튜디오에서 GNU GCC를 사용할 때의 기본은 여기입니다.
htps : // 이 m / 후지 _ 찬 / ms / 0fd5b입니다 8b4b34 또는 6c71
이번은 인터럽트 처리의 GCC에의 포팅의 소개입니다.
GCC에서 Executable Project를 새로 만듭니다. 타겟 디바이스는 R5F104LE, Hardware Debug의 구성은 EZ(RL78)를 선택합니다.
포팅 한 것은\03_ 샘플 프로그램\8 장\List 3_sample1_3입니다.
원래 샘플 코드는 이것입니다.
#include "iodefine.h"
void main(void)
{
PM1 = 0x7F;
OSMC |= 0x10;
RTCEN = 1;
ITMK = 0;
ITMC = 0x8000 + 15000/4-1;
__EI( );
while( 1 ) {
}
}
unsigned char p1;
#pragma interrupt intit(vect=INTIT)
void intit(void)
{
P1 ^= 0x80;
p1 = P1;
}
포인트는 2개. 인터럽트 권한 코드 및 인터럽트 처리 함수 지정.
__EI( );
#pragma interrupt intit(vect=INTIT)
GCC에서는
EI();
void INT_IT(void) __attribute__ ((interrupt));
따라서 샘플과 동일한 함수 구성이라면,
#include <iodefine.h>
#include "iodefine_ext.h"
void main(void)
{
PM1 = 0x7F;
OSMC |= 0x10;
RTCEN = 1;
ITMK = 0;
ITMC = 0x8000 + 15000/4-1;
EI( );
while( 1 ) {
}
}
unsigned char p1;
#include "interrupt_handlers.h"
void INT_IT (void)
{
P1 ^= 0x80;
p1 = P1;
}
inhandler.c 파일의 INT_IT 함수는 기본적으로 생성되므로 주석 처리합니다.
/*
* INT_IT (0x38)
*/
//void INT_IT (void) { }
이상으로 완성.
빌드하고 실행하면 LED가 설정한 시간에 점멸합니다.
Reference
이 문제에 관하여(C-First 보드를 e2 studio의 GCC로 인터럽트를 사용해보기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Fuji_chan/items/e52369568902050c3939텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)