在线时间400 小时
UID2075309
注册时间2014-2-25
NXP金币83
TA的每日心情 | 开心 2019-10-17 08:07 |
---|
签到天数: 273 天 连续签到: 1 天 [LV.8]以坛为家I
金牌会员
 
- 积分
- 7508
- 最后登录
- 2021-8-30
|
由于没带NFC功能的手机,向老婆申请购机失败,只能玩玩板子的点灯了。
实现功能:利用芯片的RTC中断实现LED_D9一秒闪烁
程度开始:
1、初始化系统时钟:
Chip_Clock_System_SetClockFreq(2 * 1000 * 1000);
2、初始化RTC
Timer_Init();//初始化RTC
Timer_StartMeasurementTimeout(1);//设置为1秒钟一次中断
3、初始化IO口,直接抄社区的朋友(xiaoshen-372360)的帖子。
Chip_GPIO_SetPortDIR(LPC_GPIO,0,(Bit(2)|Bit(6)),1);//设置LED的相关引脚为输出
Chip_Clock_Peripheral_EnableClock(CLOCK_PERIPHERAL_GPIO);//使能GPIO时钟
LPC_GPIO->DIR=Bit(2)|Bit(6);//设置IO为输出
Chip_GPIO_Init(LPC_GPIO);
Chip_GPIO_SetPinState(LPC_GPIO,0,2,1);//点亮LED
Chip_GPIO_SetPinState(LPC_GPIO,0,6,0);//LED的GND
4、RTC中断:
void RTC_IRQHandler(void)
{
RTC_INT_T status = Chip_RTC_Int_GetRawStatus(LPC_RTC);
Chip_RTC_Int_ClearRawStatus(LPC_RTC, status);
if(Chip_GPIO_GetPinState(LPC_GPIO,0,2))//灯闪烁功能程序
Chip_GPIO_SetPinState(LPC_GPIO,0,2,0);
else
Chip_GPIO_SetPinState(LPC_GPIO,0,2,1);
if (status & RTC_INT_WAKEUP) {
Chip_RTC_Wakeup_SetReload(LPC_RTC, 1); /* Any small value will do. */
sMeasurementTimeoutInterruptFired = true;
}
}
由于是在官方例程更改的,加了上面的代码功能就实现了。
|
|