[Kinetis] KE02系列systick资料介绍不多,请问有没有精准延时的例子?

[复制链接]
4506|20
 楼主| wgsxsm 发表于 2013-9-25 22:36 | 显示全部楼层 |阅读模式
想用systick做精准延时用,请问有没有这样的例子,delay_us()和delay_ms()
谢谢@

FSL_TICS_ZJJ 发表于 2013-9-26 10:12 | 显示全部楼层
你好,KE02的核用的是cortex-m0+,这块建议你看内核文档,page186 chapter 10,这里这里专门讲关于systick的配置,这个文档我上传,且已经标注出来。其实在KE系列的CPU文件夹下,有systick.c可以供你使用,至于具体的延时时间,你可以根据core frequence计算出来相应的值,填到SYST_RVR中。另外,KL25Z例程下,low_power_demo的low_power_demo.c中,最后也有一个关于使用systick中断的例子可以供你参考。希望能帮到你。
 楼主| wgsxsm 发表于 2013-9-26 10:20 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2013-9-26 10:12
你好,KE02的核用的是cortex-m0+,这块建议你看内核文档,page186 chapter 10,这里这里专门讲关于systick的 ...

嗯,好的,多谢
昨天晚上我想到了KL系列的例子应该有systick的例子,结果没有看到...
晚上回去再仔细看一遍
 楼主| wgsxsm 发表于 2013-9-26 10:21 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2013-9-26 10:12
你好,KE02的核用的是cortex-m0+,这块建议你看内核文档,page186 chapter 10,这里这里专门讲关于systick的 ...

顺便问一下,内核文档的链接地址
谢谢
FSL_TICS_ZJJ 发表于 2013-9-26 11:13 | 显示全部楼层
不好意思,这个上传只能10M,文档超过了10M,所以我这边只能给你个链接你自己下载,内容page186 chapter 10,下载地址:http://ishare.iask.sina.com.cn/f/35509508.html
 楼主| wgsxsm 发表于 2013-9-26 11:59 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2013-9-26 11:13
不好意思,这个上传只能10M,文档超过了10M,所以我这边只能给你个链接你自己下载,内容page186 chapter 10 ...

OK
非常感谢
FSL_TICS_ZJJ 发表于 2013-9-26 12:21 | 显示全部楼层
很高兴能够帮到您,感谢您对飞思卡尔产品的关注!
FSL_TICS_ZJJ 发表于 2013-9-26 14:30 | 显示全部楼层
楼主,你好!如果这个问题已经回答满意了,还恳请您把您的标题改为结贴哦,多谢了
 楼主| wgsxsm 发表于 2013-9-26 14:39 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2013-9-26 14:30
楼主,你好!如果这个问题已经回答满意了,还恳请您把您的标题改为结贴哦,多谢了 ...

目前还不能结贴,发帖的时限未到1天
FSL_TICS_ZJJ 发表于 2013-9-26 14:42 | 显示全部楼层
好的,多谢您对飞思卡尔产品的关注,到时间的话还麻烦您关一下,深表感谢!
 楼主| wgsxsm 发表于 2013-9-26 20:49 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2013-9-26 10:12
你好,KE02的核用的是cortex-m0+,这块建议你看内核文档,page186 chapter 10,这里这里专门讲关于systick的 ...

QQ截图20130926204759.jpg
请问红色框框的值是20000000吗?

FSL_TICS_ZJJ 发表于 2013-9-27 09:46 | 显示全部楼层
你好,core clock 其实是由你所用芯片决定的,这里举个例子,如果你使用的是MKE02Z64VLD2,其中VLD2中的2就代表是20MHZ,具体你可以查看你芯片的datasheet。
 楼主| wgsxsm 发表于 2013-9-27 09:53 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2013-9-27 09:46
你好,core clock 其实是由你所用芯片决定的,这里举个例子,如果你使用的是MKE02Z64VLD2,其中VLD2中的2就 ...

据我理解也是这样,不过我做20M用时,感觉延时不对...
FSL_TICS_ZJJ 发表于 2013-9-27 09:55 | 显示全部楼层
本帖最后由 FSL_TICS_ZJJ 于 2013-9-27 10:07 编辑

是吗?有没有测试差多少呢?另外,配置方面有没有问题?
 楼主| wgsxsm 发表于 2013-9-27 10:04 | 显示全部楼层
void delay_init()     
{
    SysTick_CLKSourceConfig(SysTick_CLKSource_BUSCLK);   //CLKSOURCE=1
    fac_us=SystemCoreClock/1000000;        //20000000/1000000=20
    fac_ms=(u16)fac_us*1000;
}

void delay_us(u32 nus)
{        
    u32 temp;            
    SysTick->LOAD=nus*fac_us;            
    SysTick->VAL=0x00;      
    SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ;     
    do
    {
        temp=SysTick->CTRL;
    }
    while(temp&0x01&&!(temp&(1<<16)));/
    SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;     
    SysTick->VAL =0X00;        
}

void delay_ms(u16 nms)
{                     
    u32 temp;           
    SysTick->LOAD=(u32)nms*fac_ms;
    SysTick->VAL =0x00;           
    SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ;         
    do
    {
        temp=SysTick->CTRL;
    }
    while(temp&0x01&&!(temp&(1<<16)));
    SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;   
    SysTick->VAL =0X00;               
}


我昨天就这么写的
理论上应该是这样的
delay_ms(1000)延时1s感觉有2-3秒的样子
请帮忙看看哪里有问题!@
谢谢

FSL_TICS_ZJJ 发表于 2013-9-27 10:09 | 显示全部楼层
你好,顺便把你工程发给我吧,我调试试!
 楼主| wgsxsm 发表于 2013-9-27 10:57 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2013-9-27 10:09
你好,顺便把你工程发给我吧,我调试试!

文件老是上传不了
请问有没有QQ啊,我站内给你发信息了


FSL_TICS_ZJJ 发表于 2013-9-27 11:05 | 显示全部楼层
本帖最后由 FSL_TICS_ZJJ 于 2013-9-27 11:07 编辑

你的信息已经收到,并且站内已回,我会尽快帮您处理这个问题!
64xiaodian 发表于 2016-1-27 17:17 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2013-9-26 11:13
不好意思,这个上传只能10M,文档超过了10M,所以我这边只能给你个链接你自己下载,内容page186 chapter 10 ...

刚好学习一下:lol
dianhang 发表于 2016-9-2 00:56 | 显示全部楼层
wgsxsm 发表于 2013-9-27 10:04
void delay_init()     
{
    SysTick_CLKSourceConfig(SysTick_CLKSource_BUSCLK);   //CLKSOURCE=1

楼主 请问这个问题解决了
我也遇到这个问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

652

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部