在线时间7266 小时
UID3426478
注册时间2017-9-25
NXP金币5384
TA的每日心情 | 擦汗 昨天 15:50 |
---|
签到天数: 1874 天 连续签到: 5 天 [LV.Master]伴坛终老
超级版主
 
- 积分
- 112714
- 最后登录
- 2025-8-31
|
本帖最后由 stm1024 于 2019-3-18 22:58 编辑
时间越来越不够用了,只能晚上抽时间学习了。LPC1768一共有四个计时器/计数器,分别是0-3,除了外设基址不同,其他基本相同。看了一下手册,然后拿着LPCOpen库测试一下:- int main()
- {
- LPC_GPIO[0].DIR|=1UL<<7;
- Chip_TIMER_Init(LPC_TIMER0);
- Chip_TIMER_Reset(LPC_TIMER0);
- Chip_TIMER_MatchEnableInt(LPC_TIMER0, 1);
- Chip_TIMER_SetMatch(LPC_TIMER0, 1, (Chip_Clock_GetSystemClockRate() / 20));
- Chip_TIMER_ResetOnMatchEnable(LPC_TIMER0, 1);
- Chip_TIMER_Enable(LPC_TIMER0);
- NVIC_ClearPendingIRQ(TIMER0_IRQn);
- NVIC_EnableIRQ(TIMER0_IRQn);
- while(1)
- {
- __WFI();
- }
- //return 0;
- }
-
- void TIMER0_IRQHandler(void)
- {
- if (Chip_TIMER_MatchPending(LPC_TIMER0, 1))
- {
- Chip_TIMER_ClearMatch(LPC_TIMER0, 1);
- Chip_GPIO_SetPinToggle(LPC_GPIO,0,7);
- }
- }
复制代码 简单来说,这个定时器和LPC11U68有点类似,LPC系列的定时器,TC在一般情况下,会不停累加,而用户需要配置的实际上是Match寄存器,即出现匹配的时候才会产生中断(如果使能的话)。此外,通过调试,我发现我故意把LPC1768的主频拉到了120Mhz(手册说最高是100MHz),暂时发现一切使用良好。
|
|