C-First 보드를 e2 studio의 GCC로 인터럽트를 사용해보기

1790 단어 GCCCRL78C-First
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가 설정한 시간에 점멸합니다.

좋은 웹페이지 즐겨찾기