OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5574|回复: 9

要将原子哥的rtc实验加入有闹钟功能该怎么设置

[复制链接]

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
发表于 2015-1-18 09:28:41 | 显示全部楼层 |阅读模式
5金钱
想请问大家如果要将原子哥的rtc实验加入有闹钟功能该怎么设置
目前尝试更改都失败球大家给各思路

最佳答案

查看完整内容[请看2#楼]

回复【6楼】正点原子: --------------------------------- 说的好我会修正学习方法 但是人要学会擅用工具运用身边的资源 如果什么都会那就没必要发问 也何必花钱买开发板 rtc闹钟在基础教程中确实没有 如要再综合实验中去分析 确实对初学者的理解有些难度会多问问题也属合理 教学若仔细论坛上何必天天有问又为何常常发贴的人无结论就息影了 我想基础教学引导的好必定问的人就会少能自已看何必天天等待一次回答的机会 就像小学生学 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2015-1-18 09:28:42 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
说的好我会修正学习方法
但是人要学会擅用工具运用身边的资源
如果什么都会那就没必要发问
也何必花钱买开发板
rtc闹钟在基础教程中确实没有
如要再综合实验中去分析
确实对初学者的理解有些难度会多问问题也属合理
教学若仔细论坛上何必天天有问又为何常常发贴的人无结论就息影了
我想基础教学引导的好必定问的人就会少能自已看何必天天等待一次回答的机会
就像小学生学英语一出生就会说
那又何必去学堂天天问老师发音呢?
省不省得花钱要看目的没有不花钱就能得到东西的道理
但现在只是在学习阶段总不能毫无目标一直在花钱
就像原子哥开论坛就是为了让开发商品卖得更好对吧?
一般学习者花钱买开发板也只是天真的想让学习成效更好
最后还是强调我知道学习态度不对
但还是想说说这阵子在论坛看到与自已学习的经验
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2015-1-18 16:21:52 | 显示全部楼层
看了许多帖原子哥希望大家看看综合实验中有闹钟实现
但是目前初学再搞简单的rtc实验再回头去看看综合实验时敻上却复杂了
目前看不太懂希望各位大神帮忙给点方向实践rtc实验中增加闹钟功能
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-1-18 23:20:45 | 显示全部楼层
要学会分析问题.
综合实验的闹钟就是在canlander.c里面.
然后看函数名字,很容易就找到相关代码了.

求人不如求己啊.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2015-1-19 09:33:24 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
说的是我会多用心
那个文档我看过了
原子哥不明白我的意思
我是希望单纯的在rtc实验中增加闹钟
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2015-1-19 20:42:55 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
calendar.c原子哥是他没错吗
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-1-19 22:32:59 | 显示全部楼层
回复【5楼】hack906447:
---------------------------------
要学会去移植代码
一定要和你的预期一模一样,那只能找个人帮你写了,但你又舍不得花钱,是吧?

所以要学会找资料,吸取别人的精华.
就像吃饭,别人帮你做好了.
你自己拿个碗,搞双筷子就可以吃了.
楞要别人喂你,这就不会太好了.要嘛是婴儿,要嘛就是病儿了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-1-20 23:58:17 | 显示全部楼层
 回复【7楼】 hack906447 :
---------------------------------
还是要多自己动脑.
我们卖开发板,但不负责帮客户写代码,如果有这个想法,那就不要买了.
技术支持不是帮你写代码,而是告诉你方法.指点你方向.
所谓师傅引入门,修行靠个人,我不指望我们所有客户都能学的很好,只要真心想学的人能学好就够了.

你这个RTC问题,要是会找资料的,早就做出来了.
很久前就有一个帖子:http://www.openedv.com/posts/list/28550.htm
里面就有RTC周期唤醒的,其实就是闹钟.
函数如下:
[mw_shl_code=c,true]//初始化闹钟 //以1970年1月1日为基准 //1970~2099年为合法年份 //syear,smon,sday,hour,min,sec:闹钟的年月日时分秒 //返回值:0,成功;其他:错误代码. u8 ALARM_Set(u16 syear,u8 smon,u8 sday,u8 hour,u8 min,u8 sec) { u16 t; u32 seccount=0; if(syear<1970||syear>2099)return 1; for(t=1970;t<syear;t++) //把所有年份的秒钟相加 { if(Is_Leap_Year(t))seccount+=31622400;//闰年的秒钟数 else seccount+=31536000; //平年的秒钟数 } smon-=1; for(t=0;t<smon;t++) //把前面月份的秒钟数相加 { seccount+=(u32)mon_table[t]*86400;//月份秒钟数相加 if(Is_Leap_Year(syear)&&t==1)seccount+=86400;//闰年2月份增加一天的秒钟数 } seccount+=(u32)(sday-1)*86400;//把前面日期的秒钟数相加 seccount+=(u32)hour*3600;//小时秒钟数 seccount+=(u32)min*60; //分钟秒钟数 seccount+=sec;//最后的秒钟加上去 //设置时钟 RCC->APB1ENR|=1<<28;//使能电源时钟 RCC->APB1ENR|=1<<27;//使能备份时钟 PWR->CR|=1<<8; //取消备份区写保护 //上面三步是必须的! RTC->CRL|=1<<4; //允许配置 RTC->ALRL=seccount&0xffff; RTC->ALRH=seccount>>16; RTC->CRL&=~(1<<4);//配置更新 while(!(RTC->CRL&(1<<5)));//等待RTC寄存器操作完成 return 0; }[/mw_shl_code]
我看你两天前就找到这个帖子了,不知道为什么你还是搞不出来.
所以,多动手,多思考吧.


我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2015-1-21 06:44:08 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
原子哥你说的那个帖
在rtc文档内u8 ALARM_Set(u16 syear,u8 smon,u8 sday,u8 hour,u8 min,u8 sec)貌似没有使用到
该大神是在主函数文档中在建立一个void ALARM_CNT_Set(u32 cntx)
也只有调用这个函数而已
那ALARM_Set没调用到还有闹钟功能吗?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-1-21 23:41:10 | 显示全部楼层
回复【10楼】hack906447:
---------------------------------
我们有usmart,在usmart里面,调用ALARM_Set,你就可以测试下了.
那边那个帖子,就有调用的.
你只需要调用:ALARM_Set,设置你要闹钟的时间,就可以了.
然后等RTC到了这个时间,就会进入闹钟中断服务函数.

这个就是你要的闹钟最简单的代码.

至于闹钟你怎么处理,那是你自己去决定了.中断服务函数约精简越好,不要写一堆代码进去.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

51

主题

340

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3275
金钱
3275
注册时间
2013-9-21
在线时间
281 小时
 楼主| 发表于 2015-1-22 06:37:05 | 显示全部楼层
回复【11楼】正点原子:
---------------------------------
你这样的回答正式我期待以久的答案
感谢你的付出
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-8-8 15:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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