헤더
#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))
{
}
}
}
}
'코스웨어 > 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 |