본문 바로가기
코스웨어/14년 스마트컨트롤러

인터벌 타이머 김재성

by 알 수 없는 사용자 2014. 10. 31.
728x90
반응형

헤더

#include "AT91SAM7S256.h"

#ifndef _LED_H_

#define _LED_H_

#define LED_PIN AT91C_PIO_PA0

#define __ON__ 1

#define __OFF__ 0

#define PICNT 20


void LED_ON();

void LED_OFF();

void LED_INIT();

unsigned int LED_STATE(void);

void LED_TOGGLE(void);

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#endif //_LED_H_


#include "led.h"


volatile static unsigned int uiState;

void LED_ON()

{

*AT91C_PIOA_SODR = LED_PIN;

uiState = __ON__;

}


void LED_OFF()

{

*AT91C_PIOA_CODR = LED_PIN;

uiState = __OFF__;

}


void LED_INIT()

{

*AT91C_PMC_PCER = AT91C_ID_PIOA;

*AT91C_PIOA_PER = LED_PIN;

*AT91C_PIOA_OER = LED_PIN;

*AT91C_PIOA_PPUDR = LED_PIN; //풀업저항 OFF

*AT91C_PIOA_CODR = LED_PIN; //LED끔

uiState = __OFF__;

}


unsigned int LED_STATE(void)

{

return uiState;

}

void LED_TOGGLE(void)

{

if(__OFF__==uiState)

{

LED_ON();

}

else

{

LED_OFF();

}

}#include "led.h"


volatile static unsigned int uiState;

void LED_ON()

{

*AT91C_PIOA_SODR = LED_PIN;

uiState = __ON__;

}


void LED_OFF()

{

*AT91C_PIOA_CODR = LED_PIN;

uiState = __OFF__;

}


void LED_INIT()

{

*AT91C_PMC_PCER = AT91C_ID_PIOA;

*AT91C_PIOA_PER = LED_PIN;

*AT91C_PIOA_OER = LED_PIN;

*AT91C_PIOA_PPUDR = LED_PIN; //풀업저항 OFF

*AT91C_PIOA_CODR = LED_PIN; //LED끔

uiState = __OFF__;

}


unsigned int LED_STATE(void)

{

return uiState;

}

void LED_TOGGLE(void)

{

if(__OFF__==uiState)

{

LED_ON();

}

else

{

LED_OFF();

}

}

LED.C

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


#include "AT91SAM7S256.h"

#include "led.h"

void ISR_SYSTEM(void);

void PIT_INIT();


int main()

{

LED_INIT();

PIT_INIT();


while (1)

{


}

return 0;

}

void PIT_INIT()

{

AT91C_AIC_SVR[AT91C_ID_SYS] = (volatile unsigned int)ISR_SYSTEM;

*AT91C_AIC_IECR = 1<<AT91C_ID_SYS;

*AT91C_PITC_PIMR = AT91C_PITC_PITEN|AT91C_PITC_PITIEN|0xF4240;

}

void ISR_SYSTEM(void) //ISR 인터럽트 서비스 루틴

{

static unsigned int iCnt;

if(0!=*AT91C_PITC_PISR)

{

if(1==((*AT91C_PITC_PIVR >>PICNT)%4))

LED_TOGGLE();

{

iCnt++;

if(0 == (iCnt%3))

{

}

}

}

}

728x90

'코스웨어 > 14년 스마트컨트롤러' 카테고리의 다른 글

ARM Interval Timer LED on, off 김해성  (1) 2014.10.31
ADS LED ON/OFF(PIT) 김진철  (0) 2014.10.31
일일보고서 손병규 - 20141030  (6) 2014.10.31
10.30 이경진 led  (0) 2014.10.31
ADS LED On/Off 양태영  (1) 2014.10.31
ADS LED ON/OFF(PIT) 김화린  (0) 2014.10.31
ADS LED ON/OFF(PIT) 문대영  (0) 2014.10.31
ARM PIT 이용한 LED - 허수웅  (0) 2014.10.31