找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

單片機計時程序有點小毛病!

查看數(shù): 2588 | 評論數(shù): 14 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2022-7-16 22:13

正文摘要:

以前程序是從9999開始倒計時開始的,現(xiàn)在按下鍵,不是從9999開始計時的

回復(fù)

ID:278457 發(fā)表于 2022-8-6 17:20
zhangxl 發(fā)表于 2022-7-17 17:20
viod servic_init(void)
{
  sec=9999;

,一起努力
ID:278457 發(fā)表于 2022-8-6 17:19
zhangxl 發(fā)表于 2022-7-17 11:44
我是新手,別的沒看明白,沒看到樓主對sec賦值,不知道是不是賦值的問題?另外
LEDBuf[0]=sec/1000   LEDB ...

沒事,這本來就是交流,取長補短
ID:824490 發(fā)表于 2022-7-19 16:56
這代碼似乎不大對,main()中沒有大循環(huán),卻在鍵掃中加入while(1)。看成不明白。
ID:824490 發(fā)表于 2022-7-19 16:51
wei1130 發(fā)表于 2022-7-17 20:22
但是規(guī)范寫法就這樣

不!
While(1)是無條件循環(huán)。沒有退出的條件,如果代碼中沒有相應(yīng)的處理,很容易死在里邊的。
ID:824490 發(fā)表于 2022-7-19 16:49
這么多while(1),你確定代碼不會陷死在里邊,出不來嗎?
ID:1039802 發(fā)表于 2022-7-17 20:22
lkc8210 發(fā)表于 2022-7-17 17:39

但是規(guī)范寫法就這樣
ID:161164 發(fā)表于 2022-7-17 17:39

  1. While(1)
  2. {
  3.         While(1)
  4.         {
  5.                 While(1)
  6.                 {
  7.                         //這寫法令人極度不適
  8.                 }
  9.         }
  10. }
復(fù)制代碼

ID:698558 發(fā)表于 2022-7-17 17:24
zhangxl 發(fā)表于 2022-7-17 17:20
viod servic_init(void)
{
  sec=9999;

這個可能不太對,你可已在調(diào)用Service_int()之前加上sec=9999;
ID:698558 發(fā)表于 2022-7-17 17:20
本帖最后由 zhangxl 于 2022-7-17 17:25 編輯

viod servic_init(void)
{
  sec=9999;
     while(1)
     {
        取數(shù)
      }
}
應(yīng)該這樣吧,中斷時時的在減sec值。我今天遇到了相同的情況。
ID:121859 發(fā)表于 2022-7-17 13:14
初始化時TR1=0,SEC=9999;按鍵后才TR1=1;就可以了
ID:698558 發(fā)表于 2022-7-17 11:44
我是新手,別的沒看明白,沒看到樓主對sec賦值,不知道是不是賦值的問題?另外
LEDBuf[0]=sec/1000   LEDBuf[1]=sec%1000/100
LEDBuf[2]=sec%100/10   LEDBuf[3]=sec%100
這樣取數(shù)會不會更好一點兒
新手有說錯不要見怪
ID:278457 發(fā)表于 2022-7-16 22:32
隨機數(shù)倒計時
ID:278457 發(fā)表于 2022-7-16 22:15
現(xiàn)在從9998或是9997開始計時.
ID:278457 發(fā)表于 2022-7-16 22:14
是9998開始的,這是什么毛病.

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

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

快速回復(fù) 返回頂部 返回列表