打印

新人求教,如何实现万年历电子闹钟,当闹钟响的时候,时钟要任然走。

[复制链接]
2933|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
song757747969|  楼主 | 2013-12-11 23:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
hopewise| | 2013-12-12 08:15 | 只看该作者
//**************时间管理********************
void time_man(void)
{   
          if(f_yuyue_on==1)                                                                                                           //预约功能
             {         
                if((hour==hour1)&&(minute==minute1)&&(secs==0))          
            {
                                  L_dio=ON;                                                                                   //预约时间到,则接通负载
                                  N_dio=ON;
                                  f_heat_on=1;                                                                                           //显示加热动态图标
                                  buz_set(5,5100);                                                                                   //并响5声
                                  menu_set=0;
                                  tsec_key=0;
                        }  
                        else  if((hour==hour2)&&(minute==minute2)&&(secs==0))
            {                                                                                     
                                  L_dio=OFF;                                                                                           //工作时间到,则关闭负载
                                  N_dio=OFF;
                                  if(f_heat_on==1) buz_set(5,100);                                                   //并响5声
                                  f_heat_on=0;                                                                                           //关闭加热动态图标显示
                                  f_yuyue_on=0;
                                  yuyue_led=OFF;
                        }  
         }       
             
}          

使用特权

评论回复
板凳
ayb_ice| | 2013-12-12 08:16 | 只看该作者
根本没有状态机的概念

使用特权

评论回复
地板
hopewise| | 2013-12-12 08:24 | 只看该作者
这是时间轮的程序结构,比如主周期为10ms,在另1个实时时钟管理函数计算时钟(包含hour,minute和secs).hour1,minute1和hour2,minute2分别是设定的预约和定时

使用特权

评论回复
5
song757747969|  楼主 | 2013-12-12 13:51 | 只看该作者
hopewise 发表于 2013-12-12 08:24
这是时间轮的程序结构,比如主周期为10ms,在另1个实时时钟管理函数计算时钟(包含hour,minute和secs).hour1,m ...

新人听不懂啊 ,

使用特权

评论回复
6
song757747969|  楼主 | 2013-12-12 13:51 | 只看该作者
ayb_ice 发表于 2013-12-12 08:16
根本没有状态机的概念

确实没有,慢慢学习中

使用特权

评论回复
7
song757747969|  楼主 | 2013-12-12 13:54 | 只看该作者
hopewise 发表于 2013-12-12 08:15
//**************时间管理********************
void time_man(void)
{   

但是在响5声的同时,时钟应该也不会走啊

使用特权

评论回复
8
ayb_ice| | 2013-12-12 13:56 | 只看该作者
song757747969 发表于 2013-12-12 13:54
但是在响5声的同时,时钟应该也不会走啊

想想高速公路上的车流就明白了

使用特权

评论回复
9
hopewise| | 2013-12-14 08:09 | 只看该作者
时间轮的程序结构相当于电脑操作系统,想一下电脑是怎么工作的---我们一边可以看电影,一边可以打字编写文件,一边画PCB板等等,好像它们是同时执行的,其实不是这样的,某个时刻只能执行某个动作,时间轮的程序结构轮流执行所有的子函数,比如按键扫描,接着显示函数,然后时间管理........,下面是个主程序结构.我自己搞的电子钟,有时间显示,闹种,预约,定时,温度显示(用RTC),误差0.5秒/每天,没有进行时间校正操作.本论坛也有具体的完整程序例子,好像是啥"我的第1次调试经厉"
while(1)
{
           if(t_us >= 80)                                  //10ms
           {
                        t_us = 0;
                       I2CReadDate_SD2405();            //读时钟芯片内容(时间)
               key_scan();                             //按键扫描
             display_man();                            //显示管理
             key_deal();                             //按键处理
             translate();                             //共阴数据转换成共阳数据再显示
                display(show_LED2);               //显示驱动
              buz_man();                           //蜂鸣器管理
              time_man();                    //时间管理
              led_man();                             //led指示灯管理
              ReadADC();                     //读AD值
              ADC_Filter();                     //AD滤波
              rtc_man();                             //实时时钟管理
           }
     }

使用特权

评论回复
10
adef_13| | 2013-12-14 10:22 | 只看该作者
学习一下

使用特权

评论回复
11
brucedon| | 2015-12-9 12:48 | 只看该作者
hopewise 发表于 2013-12-14 08:09
时间轮的程序结构相当于电脑操作系统,想一下电脑是怎么工作的---我们一边可以看电影,一边可以打字编写文件, ...

有没有这方面的完整程序,或者资料,正想学习这方面的知识呢,以前听老师说过,用单片机的时间片轮转模拟多任务的环境,,,,求资料!!

使用特权

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

本版积分规则

6

主题

26

帖子

0

粉丝