欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 請問單片機定時器怎樣精確延時1S [打印本頁]

作者: goldbirderman    時間: 2021-4-16 13:01
標題: 請問單片機定時器怎樣精確延時1S
    定時器最高只能達到65536次,也就是只能延時60MS,我想延時1S,不想用在中斷函數里,有什么方法?

作者: 林神經    時間: 2021-4-16 16:04
先定時10MS,在中斷里面給一個標志位然后在清掉,在定義一個變量,在其他程序里面判斷有這個標志位然后變量++,加到100次。
作者: goldbirderman    時間: 2021-4-16 16:24
林神經 發表于 2021-4-16 16:04
先定時10MS,在中斷里面給一個標志位然后在清掉,在定義一個變量,在其他程序里面判斷有這個標志位然后變量 ...

這個我明白,可是我想要的是好像DELAY函數這種延時,用在定時器里面,1S
作者: 1490211360a    時間: 2021-4-16 16:33
這是我們課件上的

用T1方式0實現1秒延時函數如下:
void delay1s()
{  
  unsigned char i;
  TMOD=0x00;               // 置T1為工作方式0
  for(i=0;i<200;i++)       // 設置200次循環次數
{     
   TH1=(8192-5000)/32;     // 設置定時器初值
   TL1=(8192-5000)%32;
   TR1=1;                    // 啟動T1
   while(!TF1);   // 查詢計數是否溢出,即定時5ms時間到,TF1=1。
   TF1=0;        // 5ms定時時間到,將定時器溢出標志位TF1清零。
   }
作者: goldbirderman    時間: 2021-4-16 17:23
1490211360a 發表于 2021-4-16 16:33
這是我們課件上的

用T1方式0實現1秒延時函數如下:

好,謝謝你的幫忙
作者: xqleft    時間: 2021-4-16 19:09
goldbirderman 發表于 2021-4-16 16:24
這個我明白,可是我想要的是好像DELAY函數這種延時,用在定時器里面,1S

不是很明白你的意思? 都用定時器了為什么還要用延時呢? 即使你需要用延時,也完全可以用定時來帶替延時啊。 比如三個燈分別在 1 2  3秒的時候亮,到第2秒的時候把第一個關閉了,第3的時候把第一第二關了一樣的想過啊。 這也可以理解為延時啊。 并且這樣的程序容易修改啊。 程序要有可讀性, 可改性。不是說寫出來就完事了,要方便自己下次有需求的時候修改,或者人家能修改。
作者: 51hei團團    時間: 2021-4-16 19:30
精確延時可以這樣調試:http://m.raoushi.com/bbs/dpj-4711-1.html
作者: npn    時間: 2021-4-16 22:50
林神經 發表于 2021-4-16 16:04
先定時10MS,在中斷里面給一個標志位然后在清掉,在定義一個變量,在其他程序里面判斷有這個標志位然后變量 ...

不如50MS加20次,這樣誤差更小。
作者: goldbirderman    時間: 2021-4-16 23:23
謝謝各位的幫忙
作者: 人人學會單片機    時間: 2021-4-17 07:45
你去看完我這個貼子,你就會發現你的想法很不好 http://m.raoushi.com/bbs/dpj-204176-1.html




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1