728x90
반응형
main.c
#include "AT91SAM7S256.h"
#include "LED.h"
#define PICNT 20
void PIT_Init(void);
void ISR_System(void);
int main()
{
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(0!=*AT91C_PITC_PISR)
{
if(1 == ((*AT91C_PITC_PIVR >> PICNT) ))
{
LED_TOGGLE();
}
}
}
#include "LED.h"
#define PICNT 20
void PIT_Init(void);
void ISR_System(void);
int main()
{
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(0!=*AT91C_PITC_PISR)
{
if(1 == ((*AT91C_PITC_PIVR >> PICNT) ))
{
LED_TOGGLE();
}
}
}
LED.c
#include "LED.h"
static volatile unsigned int uiState;
void LED_Init(void)
{
*AT91C_PMC_PCER = (1<<AT91C_ID_PIOA);
*AT91C_PIOA_PER = LED_PIN;
*AT91C_PIOA_OER = LED_PIN;
*AT91C_PIOA_PPUDR = LED_PIN;
*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__;
}
unsigned int LED_STATE(void)
{
return uiState;
}
void LED_TOGGLE(void)
{
if(__OFF__ == uiState)
{
LED_ON();
}
else
{
LED_OFF();
}
static volatile unsigned int uiState;
void LED_Init(void)
{
*AT91C_PMC_PCER = (1<<AT91C_ID_PIOA);
*AT91C_PIOA_PER = LED_PIN;
*AT91C_PIOA_OER = LED_PIN;
*AT91C_PIOA_PPUDR = LED_PIN;
*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__;
}
unsigned int LED_STATE(void)
{
return uiState;
}
void LED_TOGGLE(void)
{
if(__OFF__ == uiState)
{
LED_ON();
}
else
{
LED_OFF();
}
}
LED.h
#ifndef __LED_H__
#define __LED_H__
#include "AT91SAM7S256.h"
#define LED_PIN AT91C_PIO_PA0
#define __ON__ 1
#define __OFF__ 0
void LED_ON(void);
void LED_OFF(void);
void LED_Init(void);
unsigned int LED_STATE(void);
void LED_TOGGLE(void);
#endif
#define __LED_H__
#include "AT91SAM7S256.h"
#define LED_PIN AT91C_PIO_PA0
#define __ON__ 1
#define __OFF__ 0
void LED_ON(void);
void LED_OFF(void);
void LED_Init(void);
unsigned int LED_STATE(void);
void LED_TOGGLE(void);
#endif
728x90
'코스웨어 > 14년 스마트컨트롤러' 카테고리의 다른 글
일일보고서 손병규 - 20141030 (6) | 2014.10.31 |
---|---|
10.30 이경진 led (0) | 2014.10.31 |
인터벌 타이머 김재성 (0) | 2014.10.31 |
ADS LED On/Off 양태영 (1) | 2014.10.31 |
ADS LED ON/OFF(PIT) 문대영 (0) | 2014.10.31 |
ARM PIT 이용한 LED - 허수웅 (0) | 2014.10.31 |
ADS LED ON/OFF (0) | 2014.10.31 |
10.30 PIT 활용 LED On/Off [오두환] (0) | 2014.10.30 |