直接在官方例程上改的闪灯程序,感觉实再的方法好笨,RTC还没看懂,没办法慢慢来吧。
/***************************************************************************
*
* [url=home.php?mod=space&uid=247401]@brief[/url] providing GPIO demo
*
*******************************************************************************/
#include "common.h"
#include "ics.h"
#include "rtc.h"
#include "uart.h"
#include "gpio.h"
#include "sysinit.h"
#include "start.h"
/******************************************************************************
* Global variables
******************************************************************************/
volatile uint32_t Switch = 1;
/******************************************************************************
* Constants and macros
******************************************************************************/
/******************************************************************************
* Local types
******************************************************************************/
/******************************************************************************
* Local function prototypes
******************************************************************************/
/******************************************************************************
* Local variables
******************************************************************************/
/******************************************************************************
* Local functions
******************************************************************************/
int main (void);
void RTC_Task(void);
/******************************************************************************
* Global functions
******************************************************************************/
/********************************************************************/
int main (void)
{
/* Perform processor initialization */
sysinit();
cpu_identify();
RTC_ConfigType sRTCConfig;
RTC_ConfigType *pRTCConfig = &sRTCConfig;
printf("\nRunning the GPIO_demo project.\n");
/* configure RTC to 1Hz interrupt frequency */
pRTCConfig->u16ModuloValue = 9;
pRTCConfig->bInterruptEn = RTC_INTERRUPT_ENABLE; /* enable interrupt */
pRTCConfig->bClockSource = RTC_CLKSRC_1KHZ; /*clock source is 1khz*/
pRTCConfig->bClockPresaler = RTC_CLK_PRESCALER_100; /*prescaler is 100*/
RTC_SetCallback(RTC_Task);
RTC_Init(pRTCConfig);
/* way 1. GPIO initialize by multiple pin mask */
GPIO_Init(GPIOB, GPIO_PTE7_MASK, GPIO_PinOutput);
/* way 2. GPIO initialize single pin name */
/* GPIO_PinInit(GPIO_PTE7, GPIO_PinOutput); */
while (1)
{
};
}
/*****************************************************************************//*!
*
* [url=home.php?mod=space&uid=247401]@brief[/url] callback routine of RTC driver which does what you want to do at
* every RTC period.
*
* @param none
*
* [url=home.php?mod=space&uid=266161]@return[/url] none
*
* [url=home.php?mod=space&uid=72445]@[/url] Pass/ Fail criteria: none
*****************************************************************************/
void RTC_Task(void)
{
/* toggle LED1 */
/* way 1. toggle LED1 by multiple pin mask */
/* GPIO_Toggle(GPIOB, GPIO_PTE7_MASK); */
/* way2. toggle LED by single pin name */
/* GPIO_PinToggle(GPIO_PTE7); */
if (Switch == 0) GPIO_PinClear(GPIO_PTE7);
if (Switch == 1) GPIO_PinSet(GPIO_PTE7);
Switch ++;
if (Switch == 2) {Switch = 0;}
}
/********************************************************************/
|