搜索
bottom↓
回复: 28

在看官方的KE02-SC的例子led。不懂的void RTC_Task怎么调用的。

[复制链接]

出0入0汤圆

发表于 2014-12-1 14:59:48 | 显示全部楼层 |阅读模式
第一次接触飞思卡尔的片子,硬着头皮看。

void RTC_Task(void)
{
    /* toggle LED1 */
    LED0_Toggle();

}
这个程序没有在主循环的调用,是怎么执行的呢?
看样子与初始化有关
RTC_SetupTimerCallback(RTC_Task);
  RTC_Init(RTC_CLKSRC_1KHZ,3, RTC_CLK_PRESCALER_100);

这是原函数:
void RTC_Init(uint8 clkSrc,uint16 modulo, uint8 prescaler)
{
    SIM_SCGC |= SIM_SCGC_RTC_MASK;                     /*enable clock to RTC*/
    RTC_MOD= modulo;                                   /*NOTE: RTC_MOD must be written after RTC_SC*/
    RTC_SC =  0 | RTC_SC_RTIE_MASK | RTC_SC_RTCO_MASK ;      
    RTC_SC |= ((clkSrc & 0x3) << 14) | ((prescaler & 0x07)<<8);
    /*enable interrupt*/
    enable_irq(20);
}

void RTC_SetupTimerCallback(T_RTC_Callback pfnCallback)
{
    RTC_Callback[0] = pfnCallback;
}

但是怎么和函数void RTC_Task(void)关联在一起的呢?
初学,莫笑话我哦。

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

发表于 2014-12-1 15:03:10 | 显示全部楼层
是一个回调函数,你看一下定义在哪个指针列表里面的

出0入0汤圆

 楼主| 发表于 2014-12-1 15:08:34 | 显示全部楼层
听说过回调函数,但是不懂。在51习惯了,这个几乎没有接触呢。

出0入0汤圆

发表于 2014-12-1 15:18:30 | 显示全部楼层
有操作系统吗???

出0入0汤圆

发表于 2014-12-1 15:19:45 | 显示全部楼层
1-回调函数,楼主可以看一下c和指针一书
2  我是这么理解回调函数的,在用的时候将应当函数名赋值给一个指针。。
3 稍后晚些在理解一下回调指针再来说一下。

出0入0汤圆

发表于 2014-12-1 15:20:12 | 显示全部楼层
1-回调函数,楼主可以看一下c和指针一书
2  我是这么理解回调函数的,在用的时候将应当函数名赋值给一个指针。。
3 稍后晚些在理解一下回调指针再来说一下。

出0入0汤圆

发表于 2014-12-1 15:22:25 | 显示全部楼层
怎么还用到了回调了,等板子来了赶紧试试

出0入0汤圆

发表于 2014-12-1 15:25:30 | 显示全部楼层
callback 是回调函数,这个一般大学的c课程中好像是不讲的

出100入101汤圆

发表于 2014-12-1 15:31:31 | 显示全部楼层
找一下T_RTC_Callback的定义,按其格式创建以个函数,调用时参数为所创建的函数名。

出0入0汤圆

发表于 2014-12-1 15:33:27 来自手机 | 显示全部楼层
lzl000 发表于 2014-12-1 15:25
callback 是回调函数,这个一般大学的c课程中好像是不讲的

1  谭浩强的c语言书应当是大学使用最多的。书中也没有明确给出回调函数。
2  我们学c语言的时候,老师后边都不教了。
3 那本书中的函数指针 但是和回调函数密切联系的。

出0入0汤圆

发表于 2014-12-1 15:33:52 来自手机 | 显示全部楼层
lzl000 发表于 2014-12-1 15:25
callback 是回调函数,这个一般大学的c课程中好像是不讲的

1  谭浩强的c语言书应当是大学使用最多的。书中也没有明确给出回调函数。
2  我们学c语言的时候,老师后边都不教了。
3 那本书中的函数指针 但是和回调函数密切联系的。

出0入0汤圆

发表于 2014-12-1 15:36:38 | 显示全部楼层
没有使用过,好像是比较复杂的哦

出0入0汤圆

发表于 2014-12-1 15:37:15 | 显示全部楼层
彼岸花开@ 发表于 2014-12-1 15:33
1  谭浩强的c语言书应当是大学使用最多的。书中也没有明确给出回调函数。
2  我们学c语言的时候,老师后 ...

毕竟学校教的是有限的,只是领我们入门而已,具体要在工作中慢慢学习领悟

出0入0汤圆

发表于 2014-12-1 15:43:28 | 显示全部楼层
qufuta 发表于 2014-12-1 15:18
有操作系统吗???

这个没有操作系统吧

出0入0汤圆

发表于 2014-12-1 15:53:03 | 显示全部楼层
最好能把工程文件也上传到帖子里

出0入0汤圆

发表于 2014-12-1 15:55:42 | 显示全部楼层
回调类似触发中断,切换到另一个任务执行,然后再回调到主任务。

出0入0汤圆

发表于 2014-12-1 15:58:33 | 显示全部楼层
可以参考一下这个帖子:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-12-1 16:06:17 | 显示全部楼层
回调函数

出0入0汤圆

发表于 2014-12-1 16:12:33 | 显示全部楼层
好好看看rtc.c、rtc.h文件
LZ还差一个中断函数,void RTC_Isr(void),这个函数间接调用了RTC_Task函数。

出0入0汤圆

发表于 2014-12-1 16:16:43 | 显示全部楼层
表示不懂,等大神出现  

出0入0汤圆

发表于 2014-12-1 21:04:12 | 显示全部楼层
这个是回调函数,用起来没什么的,见的多了就好了

出0入0汤圆

发表于 2014-12-1 21:06:58 | 显示全部楼层
彼岸花开@ 发表于 2014-12-1 15:33
1  谭浩强的c语言书应当是大学使用最多的。书中也没有明确给出回调函数。
2  我们学c语言的时候,老师后 ...

谭的书里面确实 没有这方面的,根本就没有提及,我刚开始遇到这种写法也不懂,网上搜了才知道的,谭的书讲的还是很基础的,要想提高靠谭的书还是不行的

出0入0汤圆

发表于 2014-12-1 21:09:57 | 显示全部楼层
qufuta 发表于 2014-12-1 15:18
有操作系统吗???

根据我的了解,回调函数和操作系统之间没有必然联系,你想怎么用回调函数都行,在哪里用都可以,当然不用回调函数也是可以的

出0入0汤圆

发表于 2014-12-1 22:40:16 | 显示全部楼层
1、http://www.amobbs.com/thread-5606635-1-1.html  
开贴,发了一下。楼主可以参考一下。。
2、我还没用研究ke02。无法给出细节大答复

出0入0汤圆

发表于 2014-12-2 08:36:53 | 显示全部楼层
问楼主个问题。。那个srec 类型的文件。在keil5 下咋么生成呢。。

出0入0汤圆

发表于 2014-12-2 09:22:23 | 显示全部楼层
楼主,主要是指针你搞清楚了就明白了,或者是楼主本来搞明白了,转不过这个弯。
这个库很有意思,他通过调用RTC_SetupTimerCallback(RTC_Task)来将程序切入到RTC_Task这个函数。实际上是地址传递。
你也可以调用此函数将程序切入到任何一个你想要执行的程序。
仔细看配置文件和.h文件,你就会发现其实是中间多了一层包装而已。

这和操作系统没什么关系。这样做的好处是移植方便,不需要去改动应用层,只需要写好驱动层,应用层的程序就可以直接copy使用,程序也更有条理。
(个人使用经验,希望对楼主有帮助)

出100入101汤圆

发表于 2014-12-2 09:30:29 | 显示全部楼层
LS解释的很好的,分层时常用。

出0入0汤圆

发表于 2014-12-2 21:33:52 | 显示全部楼层
我能说谭老师的书很简吗,坑了不少人,c primer plus国外的书里面讲的很细的,而且比较好理解

出0入0汤圆

发表于 2014-12-2 21:35:20 | 显示全部楼层
dengterry 发表于 2014-12-1 16:12
好好看看rtc.c、rtc.h文件
LZ还差一个中断函数,void RTC_Isr(void),这个函数间接调用了RTC_Task函数。 ...

官网的例程还是很不错的
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-3 02:16

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表