闪耀的空白 发表于 2013-5-1 15:36:05

如何在万年历的基础上设置可调闹钟

如何在万年历的基础上添加可调闹钟程序,闹钟可以通过按键设置

binaimei2007 发表于 2013-5-1 16:23:55

真够直接的,跟布置作业一样

闪耀的空白 发表于 2013-5-1 20:07:08

会的就帮帮忙,谢谢

261854681 发表于 2013-5-1 22:17:08

不知这个思路是否对你有用:设置一组数组,存储你的定时时间,然后写个比较判读的函数,每秒去执行一次,不就行了?

闪耀的空白 发表于 2013-5-2 09:29:06

嗯嗯,试试{:smile:}{:smile:}

xlwq 发表于 2013-5-2 10:05:35

我之前的方案是:设置一个数组,分别存放对应的,星期,小时,分钟,然后将设置的结果保存在这个数组里,在时钟显示的代码里,不断调用这个闹钟的函数,进行匹配,匹配的原则是,先判断,闹钟标志位,然后星期,再小时,最后判断分钟,都满足,就触发铃声,有一个不满足,退出匹配函数。

b57203493 发表于 2013-5-2 10:08:02

http://www.amobbs.com/thread-3956782-1-1.html
很早之前做过

闪耀的空白 发表于 2013-5-3 12:14:53

{:smile:}{:smile:}{:smile:}{:smile:}{:smile:}{:smile:}{:smile:}{:smile:}

LZW520 发表于 2013-5-3 13:32:59

万年历是通过你的定时器实现的,定时是由计数器实现的,
方法一:定义一个long型变量(可计数约100多年)time,每秒加1,然后把你的定时时间装换成一个long型变量,比如:
unsigned long clock_time;
设定好闹钟后进行如下转换
clock_time = (闹钟和当前时间差)*3600*24 + clock_hour*3600 + clock_min*60;
然后判断每秒进行判断   clock_time == time;         (大概思路就这样)
方法二:
建立一个定时时间结构体
struct Clock
{
      unsigned int Year;
      unsigned char Month;
      unsigned char Day;
      unsinged char Hour;
      unsigned char Min;
      unsigned char Sec;
}clock;
每分钟跟你的日历结构体进行匹配一次,~~~~~~~~~~

闪耀的空白 发表于 2013-5-3 22:43:36

谢谢{:smile:}{:smile:}{:smile:}
页: [1]
查看完整版本: 如何在万年历的基础上设置可调闹钟