[問題] 請問如何設計一個鬧鐘程式?

看板C_and_CPP (C/C++)作者 (我愛阿蓉)時間15年前 (2010/09/14 14:18), 編輯推噓3(3013)
留言16則, 7人參與, 最新討論串1/3 (看更多)
請教各位我這問題分成兩個平台好了 PC 和 手機 1. PC (windows系統) 我認為沒有什麼耗電的考量 我大可以開一個thread for(;;) { Sleep(1000); //停一秒 Get System Time; if(Check time) Play Ringtone; } 我比較想問 Sleep準嗎? 如果是寫一個鬧鐘程式真的可以用Sleep去計時嗎? 比較正統的作法是什麼呢?? 2. 手機 (wince) 因為有耗電的考量.... 所以上面的暴力法一定不能用吧? 且我程式會沉入背景作業 或是手機進入suspend.....甚至關機 那可能又要分三個情況了 (1) 背景作業 大概是用什麼演算法再計算時間到了沒嗎? (2) Suspend 如果suspend, 為了不耗電 我應該沒辦法做啥事情 所以應該改用什麼方法去做呢? (3) 關機 如果是關機 又存在鬧鐘功能的話 應該不是AP這層有辦法能夠控管的 那是哪一端在處理這件事~而我AP是如何跟那層溝通(例如設定時間, 撥哪個音樂) 以上我想了許久但沒個好想法 請有經驗的版友給點指教 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.87.64.222

09/14 14:35, , 1F
直接用 at 這指令還比較快。
09/14 14:35, 1F

09/14 14:40, , 2F
如果你有 pthread 可以用,pthread_cond_timedwait() 也是
09/14 14:40, 2F

09/14 14:41, , 3F
一種方法。不過我不清楚 MS 的平台有沒有得用。
09/14 14:41, 3F

09/14 17:24, , 4F
那個...為什麼不這樣:Sleep(起床時間-現在時間)
09/14 17:24, 4F

09/14 17:30, , 5F
因為他怕不準,事實上我也不知道 Sleep 準不準。
09/14 17:30, 5F

09/14 17:43, , 6F
我就很好奇 除了sleep還有啥方法 我會的太少..不過玩過小鬧鐘
09/14 17:43, 6F

09/14 17:43, , 7F
程式 都滿準的阿 至少手機的鬧鐘都很準= = 不知怎作的
09/14 17:43, 7F

09/14 18:02, , 8F
If you are well known in MFC, you can google the
09/14 18:02, 8F

09/14 18:03, , 9F
keyword: "WM_TIMER." I think it also usable in CE.
09/14 18:03, 9F

09/14 18:05, , 10F
話說 你到底要多準 要求hard real time嘛?不然夠了啦
09/14 18:05, 10F

09/14 18:07, , 11F
各計數精度問題:http://ppt.cc/LiwU
09/14 18:07, 11F

09/14 18:07, , 12F
Sleep 計算不正常問題:http://ppt.cc/Wzec
09/14 18:07, 12F

09/14 18:16, , 13F
所以基本上就開thread 然後sleep到時間到嗎?
09/14 18:16, 13F

09/14 18:37, , 14F
如果你系統的 loading 不大, 誤差(應該)是可以接受的.
09/14 18:37, 14F

09/14 18:49, , 15F
所以這樣就是最不吃電的做法嗎? 那如果關機該怎麼做呢@@
09/14 18:49, 15F

09/14 20:59, , 16F
應該有辦法抓到電腦和手機內建的時間數值吧??
09/14 20:59, 16F
文章代碼(AID): #1CZnFGjA (C_and_CPP)
文章代碼(AID): #1CZnFGjA (C_and_CPP)