#include "LED.h"
#include "AT91SAM7S256.h"
#define PICNT 20
void ISR_System(void);
void PIT_INIT(void);
volatile unsigned int uiCnt;
int main(void)
{
LED_INIT();
PIT_INIT();
while (1);
return 0;
}
void PIT_INIT(void)
{
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)
{
if( *AT91C_PITC_PISR != 0 )
{
if( (*AT91C_PITC_PIVR >> PICNT) == 1)
{
++uiCnt;
}
if( uiCnt%3 == 0)
{
LED_Toggle();
}
}
}
#include "LED.h"
static volatile unsigned int uiState;
void LED_INIT(void)
{
*AT91C_PMC_PCER = AT91C_ID_PIOA;
*AT91C_PIOA_PER = LED_PIN;
*AT91C_PIOA_OER = LED_PIN;
*AT91C_PIOA_PPUDR = LED_PIN; //Pull-up
*AT91C_PIOA_SODR = LED_PIN;
uiState = __OFF__;
}
void LED_ON(void)
{
*AT91C_PIOA_CODR = LED_PIN;
uiState = __ON__;
}
void LED_OFF(void)
{
*AT91C_PIOA_SODR = LED_PIN;
uiState = __OFF__;
}
void LED_Toggle(void)
{
if( __OFF__ == uiState)
{
LED_ON();
}
else
{
LED_OFF();
}
}
unsigned int LED_STATE(void)
{
return uiState;
}
'코스웨어 > 14년 스마트컨트롤러' 카테고리의 다른 글
ARM_PIT_LED 손병규 (0) | 2014.10.31 |
---|---|
ARM Interval Timer LED on, off 김해성 (1) | 2014.10.31 |
ADS LED ON/OFF(PIT) 김진철 (0) | 2014.10.31 |
일일보고서 손병규 - 20141030 (6) | 2014.10.31 |
인터벌 타이머 김재성 (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 |