打印

中断问题

[复制链接]
1173|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
秋天落叶|  楼主 | 2012-6-27 22:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//系统实时时钟RTC
RTCCTL01 = RTCBCD+RTCHOLD+RTCMODE+RTCTEV_1+RTCTEVIE;


我把时钟设置为每小时中断一次RTCTEV_1,但是我现在有这么一个应用,就是工地塔吊司机监控的问题,下位机每小时提醒司机按一次指纹比对,当一个小时没到时,司机也可以主动去按指纹,司机按完指纹后,间隔一个小时后才会下一次提醒。

也就是说,司机按指纹之后,我该怎么样才能让 RTC 将下一次中断延迟到离司机当前时间一个小时,再中断。

比如,RTC 的中断间隔是每小时中断一次 提醒一次司机: 8:00 9:00 10:00 11:00……

但是司机在9:00按过后 在9:30的时候刚好闲下来,主动去按一次指纹,这样下一次中断应该是 10:30 11:30 12:30……

司机在12:50的时候,又主动去按指纹,这样下一次中断 要变为:13:50 14:50……

也就是保证每次要求按指纹的间隔都是1个小时,我该怎么做。

因为RTC时间还在其他地方使用,所以不能改时间寄存器。重新置位 RTCTEV 有效果吗

相关帖子

沙发
dfsa| | 2012-6-27 22:29 | 只看该作者
RTC一般会带有ALARM功能,你直接去刷新ALARM的参数就好

使用特权

评论回复
板凳
无冕之王| | 2012-6-27 22:38 | 只看该作者
如果是linux+ARM,使用add_timer()函数就可以了,定时时间可以任意设定(包括1小时或者1毫秒);
就是说,每次按过指纹后,就运行一次add_timer()函数,间隔时间设定为1小时;
如果司机没有按,1小时后,可以改变间隔时间为每分钟(或每10秒钟),按过之后,再变成1小时。

使用特权

评论回复
地板
yybj| | 2012-6-27 22:47 | 只看该作者
重新执行这个 RTCCTL01 = RTCTEV_1试试

使用特权

评论回复
5
火箭球迷| | 2012-6-27 22:52 | 只看该作者
重新执行这个 RTCCTL01 = RTCTEV_1试试
yybj 发表于 2012-6-27 22:47

值得一试的方法

使用特权

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

本版积分规则

个人签名:落叶很美

138

主题

3044

帖子

1

粉丝