打印
[8/16-bit MCU]

[LPC54100] 通用定时器使用

[复制链接]
925|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
春风的暖暖|  楼主 | 2016-1-15 21:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
开头引用我回复freebsder帖子的话,那是一篇对低功耗分析相当专业的帖子,大家有兴趣去看一下。



       我个人越来越喜欢这颗IC了,低功耗方面看怎么用,在提供合理的CPU性能的情况下功耗能控制得很合理,起码NXP给我考虑的很周到了。
其次对于内置的BAKUP SRAM区域可以说是一大特色,相比TI或者其他厂家的全部保持的做法有不少新意。
最后关于文档和CODE,虽然不足够多,但是给出的基本上也足够用了,关键还是要用心看,对于新手可能会有一些问题,其实我真正打算把这颗IC用起来是从昨天晚上开始的,已经在移植6lowpan了,接触了蛮多的外设,对他的文档和官方的驱动有了更深刻的认识,。
恩,要是有机会的话,以后要是允许我会重点把LPC54102平台化,作为项目中低功耗/传感/运算场合的通用平台,好好去维护。




      开始移植6lowpan协议栈,涉及的外设还挺多的,昨天晚上才开始,估计明天完成不了了,分享一些相关的东西吧。需要蛮多的timer和clock,拿最简单的通用定时器来搞吧,简单些。

先看看时钟树吧,蛮有必要的,从LPC5410x Standard counter/timers部分看出时钟来至APB,而APB的时钟从下面的时钟树看到来至几个地方,看程序中设置。
/*
* Main system clock rate in Hz for this board. Select a clock rate between
* 1500000Hz and 150000000Hz for the main system (CPU) clock for this board.
*/
#define BOARD_MAINCLOCKRATE                         (100000000)


相关帖子

沙发
春风的暖暖|  楼主 | 2016-1-15 21:29 | 只看该作者
Chip_SetupIrcClocking(BOARD_MAINCLOCKRATE);

所以这里的时钟是100M,关于对定时器的配置,也蛮简单的,不得不再次强调写NXP库的工程师团队水平了得,其实不单单是软件工程师的功劳,和硬件设计的时候也是息息相关的,这些是和寄存器设计有关的,不多说了。
/**
* [url=home.php?mod=space&uid=159083]@brief[/url]  TIMER1_Init
* [url=home.php?mod=space&uid=536309]@NOTE[/url]   TIMER1初始化
* @param  none
* @retval none
*/
void TIMER1_Init(void)
{
    /*
     * 设置PR=100
     * TIMER1时钟=PCLK(100M)/100 = 1M = 1000K
     */
    Chip_TIMER_Init(LPC_TIMER1);
    Chip_TIMER_PrescaleSet(LPC_TIMER1, 100);
    Chip_TIMER_Reset(LPC_TIMER1);
    Chip_TIMER_MatchEnableInt(LPC_TIMER1, 1);
    Chip_TIMER_SetMatch(LPC_TIMER1, 1, Chip_Clock_GetAsyncSyscon_ClockRate());
    Chip_TIMER_ResetOnMatchEnable(LPC_TIMER1, 1);
    Chip_TIMER_Disable(LPC_TIMER1);
   
    NVIC_ClearPendingIRQ(CT32B1_IRQn);
    NVIC_EnableIRQ(CT32B1_IRQn);
   
}

配置如上,这里需要注意PR的理解和设置,这里初始化禁止了TIMER1,此处的TIMER1用于us的精确延时,因为6lowpan涉及的协议栈、RAIDO驱动都蛮在意这个us延时的。

这玩意很简单,不过得用心,NXP提供的文档和驱动包都能满足你,随便哪个外设都还是很方便就能用起来的。大家有关于通用定时器的问题可以在这个帖子中跟帖讨论,不写了,打算去继续搞一下,希望能移植结束。

使用特权

评论回复
板凳
mcu_solar| | 2016-1-18 15:41 | 只看该作者
用心!!!:victory::victory::victory:

使用特权

评论回复
地板
Rooney30| | 2016-1-18 20:15 | 只看该作者
春风的暖暖 发表于 2016-1-15 21:29
所以这里的时钟是100M,关于对定时器的配置,也蛮简单的,不得不再次强调写NXP库的工程师团队水平了得,其 ...

这个定时器中断和外设IO中断有没有冲突?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

37

主题

306

帖子

2

粉丝