< LED.h>
#ifndef _LED_H_
#define _LED_H_
#include "AT91SAM7S256.h"
#define LED_PIN AT91C_PIO_PA0 // LED PIN을 0을 사용
#define __ON__ 1
#define __OFF__ 0
#define PICNT 20
void LED_Init(void);
void LED_On(void);
void LED_Off(void);
unsigned int LED_State(void);
void LED_Toggle(void);
#endif //_LED_H_
< main.c>
#include "AT91SAM7S256.h"
#include "LED.h"
void PIT_Init(void);
void ISR_System(void);
//volatile unsigned int iCnt;
int main(void)
{
LED_Init();
PIT_Init();
while (1)
{
}
return 0;
}
void PIT_Init(void)
{
AT91C_AIC_SVR[AT91C_ID_SYS] = (unsigned int)ISR_System;
*AT91C_AIC_IECR = (1<<AT91C_ID_SYS);
*AT91C_PITC_PIMR = AT91C_PITC_PITEN | AT91C_PITC_PITIEN | 0xF4240; // 0.3333초 마다 인터럽트(1/3초)
}
void ISR_System(void)
{
static unsigned int i;
/*
static unsigned int iCnt;
++iCnt;
if(0 == (iCnt%3))
{
LED_Toggle();
}
*/
if(0 != *AT91C_PITC_PISR)
{
if(1==(*AT91C_PITC_PIVR >> PICNT)) //AT91C_PITC_PIVR 상태를 읽어드릴때 초기화
{
++i;
if((i%3) == 0)
{
LED_Toggle();
}
}
}
}
'코스웨어 > 14년 스마트컨트롤러' 카테고리의 다른 글
2014.11.03 업무일지 출석번호21 이재우 (9) | 2014.11.04 |
---|---|
10.31 이경진 (9) | 2014.11.03 |
ARM_PIT_LED 손병규 (0) | 2014.10.31 |
ARM Interval Timer LED on, off 김해성 (1) | 2014.10.31 |
일일보고서 손병규 - 20141030 (6) | 2014.10.31 |
10.30 이경진 led (0) | 2014.10.31 |
인터벌 타이머 김재성 (0) | 2014.10.31 |
ADS LED On/Off 양태영 (1) | 2014.10.31 |