中断问题

[复制链接]
1733|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试试
火箭球迷 发表于 2012-6-27 22:52 | 显示全部楼层
重新执行这个 RTCCTL01 = RTCTEV_1试试
yybj 发表于 2012-6-27 22:47

值得一试的方法
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:落叶很美

138

主题

3044

帖子

1

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