久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3234|回復(fù): 19
收起左側(cè)

求一個定時判斷程序的編程思路

[復(fù)制鏈接]
ID:740383 發(fā)表于 2020-9-4 17:36 | 顯示全部樓層 |閱讀模式
求一個定時判斷程序:
比如:早上9:20,到下午16:35,即判斷時也判斷分,定時期間執(zhí)行其他函數(shù)判斷;
只求一個判斷思路;求大神
小弟這幾天腦闊疼
求大神引路!!!
回復(fù)

使用道具 舉報

ID:529540 發(fā)表于 2020-9-4 18:00 | 顯示全部樓層
看不懂你想表達什么
回復(fù)

使用道具 舉報

ID:654028 發(fā)表于 2020-9-4 18:13 | 顯示全部樓層
定時器先判斷時鐘,如果時鐘一樣就判斷分鐘
回復(fù)

使用道具 舉報

ID:213173 發(fā)表于 2020-9-4 20:41 | 顯示全部樓層
可以把小時*60化為分計算

        unsigned int min_m;

        min_m=hour*60+min;
       
        if(min_m>=560 && min_m<=995)//9:20到16:35之間
        {
                //任務(wù)
        }
回復(fù)

使用道具 舉報

ID:740383 發(fā)表于 2020-9-4 23:57 來自觸屏版 | 顯示全部樓層
wulin 發(fā)表于 2020-9-4 20:41
可以把小時*60化為分計算

        unsigned int min_m;

謝謝大佬,這個思路真是太棒了
回復(fù)

使用道具 舉報

ID:740383 發(fā)表于 2020-9-5 00:01 來自觸屏版 | 顯示全部樓層
心有浮生 發(fā)表于 2020-9-4 18:13
定時器先判斷時鐘,如果時鐘一樣就判斷分鐘

這樣子判斷的話,判斷分鐘時,開始分鐘大于結(jié)束分鐘不太好判斷吧,比如9:35-16:20
回復(fù)

使用道具 舉報

ID:401564 發(fā)表于 2020-9-5 08:17 | 顯示全部樓層
這到底是有多難呢?
首先,要看你的時間是怎么走的了
如果是定時器累加的形式走的的,比如,是從早上8:00開始計時,到了9:00就走了一個小時的話,這種形式的話就按前面說的,把時間換算成分來進行比較不就可以了嗎?
但如果是像DS1302這種時鐘芯片提供的時間,那就先比較小時,再比較分,兩者相同就行了,不存在什么大于什么的問題
回復(fù)

使用道具 舉報

ID:654028 發(fā)表于 2020-9-5 08:41 | 顯示全部樓層
danq 發(fā)表于 2020-9-5 00:01
這樣子判斷的話,判斷分鐘時,開始分鐘大于結(jié)束分鐘不太好判斷吧,比如9:35-16:20

要先判斷時針,這樣就不會出現(xiàn)分鐘大小問題,9:35和16:20的時針不一樣啊
回復(fù)

使用道具 舉報

ID:21069 發(fā)表于 2020-9-5 09:23 | 顯示全部樓層
你將(時間取值)&&(分鐘取值)調(diào)出來判斷就行了
回復(fù)

使用道具 舉報

ID:740383 發(fā)表于 2020-9-5 09:59 | 顯示全部樓層
心有浮生 發(fā)表于 2020-9-5 08:41
要先判斷時針,這樣就不會出現(xiàn)分鐘大小問題,9:35和16:20的時針不一樣啊

大佬,有沒有個模板給小弟呀小弟我新手,謝謝大佬
回復(fù)

使用道具 舉報

ID:740383 發(fā)表于 2020-9-5 10:00 | 顯示全部樓層
wulin 發(fā)表于 2020-9-4 20:41
可以把小時*60化為分計算

        unsigned int min_m;

大佬,按照你的思路這樣可否行:
        uchar NOWtime,Time_work,Time_pause;
        uchar TimerAry_work[8]={20,20,5,21,9,20,52,2};
        uchar TimerAry_pause[8]={20,20,5,21,16,35,52,2};
        Time_work=TimerAry_work[4]*60+TimerAry_work[5];
        Time_pause=TimerAry_pause[4]*60+TimerAry_pause[5];
        NOWtime=TimeArray[4]*60+TimeArray[5];
        if((NOWtime>=Time_work) && (NOWtime<=Time_pause))   //9:20到16:35之間LED被點亮
        {
                LED=1;//任務(wù)
        }
        else
        {
                LED=0;
        }
運行的時候好像有點出錯
回復(fù)

使用道具 舉報

ID:740383 發(fā)表于 2020-9-5 10:02 | 顯示全部樓層
Y_G_G 發(fā)表于 2020-9-5 08:17
這到底是有多難呢?
首先,要看你的時間是怎么走的了
如果是定時器累加的形式走的的,比如,是從早上8:0 ...

大佬,小弟新手,我用DS1302時鐘芯片的,有沒有模板呀,小弟參考參考寫個大概就好了
回復(fù)

使用道具 舉報

ID:740383 發(fā)表于 2020-9-5 11:06 | 顯示全部樓層
jinsheng7533967 發(fā)表于 2020-9-5 09:23
你將(時間取值)&&(分鐘取值)調(diào)出來判斷就行了

TimeArray[4]、TimeArray[5]//現(xiàn)在時間的時和分:
是這樣判斷嗎,但是感覺怪怪的
uchar TimerAry_work[8]={20,20,5,21,9,35,52,2};
  uchar TimerAry_pause[8]={20,20,5,21,16,20,52,2};
        if((TimeArray[4]>=TimerAry_work[4])&&(TimeArray[4]<=TimerAry_pause[4]))   //9:35到16:20之間LED被點亮
        {
                if((TimeArray[5]>=TimerAry_work[5])&&(TimeArray[5]<=TimerAry_pause[5]))
                {
                        LED=1;//任務(wù)
                }
                else
                {
                        LED=0;
                }
        }
回復(fù)

使用道具 舉報

ID:213173 發(fā)表于 2020-9-5 11:32 | 顯示全部樓層
danq 發(fā)表于 2020-9-5 10:00
大佬,按照你的思路這樣可否行:
        uchar NOWtime,Time_work,Time_pause;
        uchar TimerAry_work[ ...

uchar NOWtime,Time_work,Time_pause;變量實際大小已經(jīng)超出uchar數(shù)據(jù)范圍255,要用unsigned int  定義變量。數(shù)據(jù)溢出肯定要出錯。這個方法肯定沒有問題。另外還有一種算法,變量不會大于255:
        static bit a,b,c;
        if(hour==9 && min==20)//9:20
                a=1;
        if(hour==16 && min==35)//16:35
                b=1;
        c=a^b;
        if(c){/*任務(wù)*/}//9:20到16:35之間       
        else {a=0;b=0;}//復(fù)位
回復(fù)

使用道具 舉報

ID:471066 發(fā)表于 2020-9-5 12:41 | 顯示全部樓層
多試試幾次。別人給有思路你應(yīng)該明白了,就看你的動手能力了!加油!
回復(fù)

使用道具 舉報

ID:740383 發(fā)表于 2020-9-5 13:36 | 顯示全部樓層
wulin 發(fā)表于 2020-9-5 11:32
uchar NOWtime,Time_work,Time_pause;變量實際大小已經(jīng)超出uchar數(shù)據(jù)范圍255,要用unsigned int  定義變 ...

謝謝大佬,我去試試
回復(fù)

使用道具 舉報

ID:740383 發(fā)表于 2020-9-5 13:36 | 顯示全部樓層
#include51.h 發(fā)表于 2020-9-5 12:41
多試試幾次。別人給有思路你應(yīng)該明白了,就看你的動手能力了!加油!

謝謝
回復(fù)

使用道具 舉報

ID:401564 發(fā)表于 2020-9-5 13:49 | 顯示全部樓層
danq 發(fā)表于 2020-9-5 10:02
大佬,小弟新手,我用DS1302時鐘芯片的,有沒有模板呀,小弟參考參考寫個大概就好了

用DS1302就沒有必要轉(zhuǎn)換什么了呀
直接比較不就可以了嗎?
讀取小時,然后和設(shè)定好的小時"9"和"16"進行比較,只要有一個是相等的,就去比較分"20"和"35"
你都用到DS1302了,你不會連兩個數(shù)是不是相等的都不會吧???
回復(fù)

使用道具 舉報

ID:740383 發(fā)表于 2020-9-5 15:27 | 顯示全部樓層
Y_G_G 發(fā)表于 2020-9-5 13:49
用DS1302就沒有必要轉(zhuǎn)換什么了呀
直接比較不就可以了嗎?
讀取小時,然后和設(shè)定好的小時"9"和"16"進行比 ...

哈哈,大佬我是新手,DS1302也不是很熟練
回復(fù)

使用道具 舉報

ID:798185 發(fā)表于 2020-9-5 16:06 | 顯示全部樓層
利用定時器模擬一個時鐘,定兩個鬧鐘,到時鐘為9:20開始執(zhí)行,時鐘為16:35結(jié)束任務(wù)。emmm可能就是計時時間比較久。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日本不卡一区 | 成人在线观看免费视频 | 999国产精品视频免费 | 久久69精品久久久久久久电影好 | 国产中文字幕av | xx视频在线 | 国产精品国产三级国产aⅴ中文 | 国产在线精品区 | 99精品福利视频 | 国产一区久久 | 亚洲狠狠 | 国产成都精品91一区二区三 | 国产精品乱码一区二三区小蝌蚪 | 日韩av一区二区在线观看 | 日韩欧美中文 | 狠狠草视频 | 久久一 | www.国产91 | 久久久久久久国产精品影院 | 成人欧美一区二区三区黑人孕妇 | 水蜜桃亚洲一二三四在线 | 在线看91 | 欧美激情久久久 | 男人午夜视频 | 午夜在线视频一区二区三区 | 天天插天天狠天天透 | 久久久青草婷婷精品综合日韩 | 亚洲毛片在线观看 | 91视频在线| 亚洲图片一区二区三区 | 女人精96xxx免费网站p | 在线日韩 | 日日日操 | 久久久国产一区二区三区 | 国产成人精品亚洲日本在线观看 | 日韩精品在线一区 | 国产精品一区二区三区在线播放 | 天天插天天操 | 天堂中文字幕av | 一区中文字幕 | 亚洲精品久久久久久一区二区 |