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

標題: 利用單片機定時器定時頻率自增 [打印本頁]

作者: 不將就123    時間: 2021-10-23 10:28
標題: 利用單片機定時器定時頻率自增
我想寫一個頻率自增的程序 一開始我是這樣寫的 如下
void  PIN_LV_ZI_JIA()
{
      unsigned int i;
      for(i=500;i<=1000;i++)      // 頻率從500HZ自加到1KHZ
       {
         PIN_LV_UPDETE(i);        //頻率改變函數(shù)
         delayms(100;               //延時函數(shù)  每加一次所用的時間;

       }
}
按照上面寫的這樣不方便調(diào)節(jié)時間于是我就改成定時器來寫 可是我寫了很多次都不行 寫法如下

  1. void  PIN_LV_ZI_JIA()
  2. {
  3.       unsigned int i;
  4.       for(i=500;i<=1000;i++)               // 頻率從500HZ自加到1KHZ
  5.        {
  6.            if(COUNT>=50)                  //count是來自定時器的值 50次就是50ms
  7.               {
  8.                    COUNT = 0;                   //count清零
  9.                    PIN_LV_UPDETE[i];      //頻率改變函數(shù)

  10.                }
  11.        }
  12. }
復(fù)制代碼

這樣無法工作  請教大家一下  該怎么改啊     
要求就是要用定時器方便 控制時間  
頻率變化還是用 PIN_LV_UPDETE(i);  這個函數(shù)

作者: Y_G_G    時間: 2021-10-23 11:51
TH1=(65535-COUNT)/256;        
TL1=(65535-COUNT)%256;
COUNT為全局變量,改變COUNT就可以改變頻率,占空比只能是50%
作者: 不將就123    時間: 2021-10-23 13:31
Y_G_G 發(fā)表于 2021-10-23 11:51
TH1=(65535-COUNT)/256;        
TL1=(65535-COUNT)%256;
COUNT為全局變量,改變COUNT就可以改變頻率,占空比只能 ...

不不 你可能沒有明白我的意思  我的頻率直接調(diào)用 PIN_LV_MODE()就可以改變    我的頻率是通過PCA產(chǎn)生的 我是封裝好了的    我的意思非常簡單 就是通過定時器設(shè)置間隔時間讓這個 PIN_LV_MODE()傳遞的變量“i”每次加一這樣就可以輸出頻率了  
作者: xuyaqi    時間: 2021-10-23 13:45
改成定時器來寫 ,但沒顯示定時器里怎么寫的,還是應(yīng)該把程序全發(fā)出來。
作者: 188610329    時間: 2021-10-23 17:03
不將就123 發(fā)表于 2021-10-23 13:31
不不 你可能沒有明白我的意思  我的頻率直接調(diào)用 PIN_LV_MODE()就可以改變    我的頻率是通過PCA產(chǎn)生的  ...

估計,沒人能明白你的意思。

就說你改好的程序吧:
你for循環(huán)里判斷 count是否大于50,這個過程很快,所以for從500到1000,這個循環(huán)過程,count根本到不了50,也就是說一次作用都起不了。
作者: njzr    時間: 2021-10-23 17:21
如果要求快速變化就直接在定時中斷里改下個周期時間,如果需要慢速變化就用自動重裝載定時器用于輸出,另一定時器(或其它周期中斷)去定時改變輸出定時器的重載值
作者: Y_G_G    時間: 2021-10-23 23:52
不將就123 發(fā)表于 2021-10-23 13:31
不不 你可能沒有明白我的意思  我的頻率直接調(diào)用 PIN_LV_MODE()就可以改變    我的頻率是通過PCA產(chǎn)生的  ...

PCA就是PCA,你又說定時器
每隔一段時間改一下PCA的初值不就行了
作者: lkc8210    時間: 2021-10-24 00:07
你弄錯了嵌套次序了
而且不要用For
  1. void  PIN_LV_ZI_JIA()
  2. {
  3.         static unsigned int i = 500;// 頻率從500HZ自加到1KHZ
  4.         if(COUNT>=50)                  //count是來自定時器的值 50次就是50ms
  5.         {
  6.                 COUNT = 0;                   //count清零
  7.                 PIN_LV_UPDETE(i);      //頻率改變函數(shù)
  8.                 i++;
  9.                 if(i>1000)i=500;
  10.         }
  11. }
復(fù)制代碼





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