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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1502|回復: 7
打印 上一主題 下一主題
收起左側

單片機頻率計檢測特定頻率并點亮LED

[復制鏈接]
跳轉到指定樓層
樓主
ID:76027 發表于 2024-3-19 15:45 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
抄了一個頻率計的單片機代碼,設想檢測到設定的頻率,點亮LED。但現在是頻率計有一定的誤差,比如設定的頻率是188Hz,但檢測到的有可以是187Hz 188Hz或189Hz,正負各差1Hz,無法正常點亮LED。特請教各位大佬指教,如何通過換算,消除這個誤差,正常點亮LED。
******************************************************************************/

void TM1_Isr() interrupt 3

{   

  static unsigned int ms_flag = 0;  //1s計數標志

        if(ms_flag++ == 1000)

        {

                freq = (TH0<<8|TL0);           //獲取當前計數器計數值      
        
                if(freq ==188)                  //檢測到的頻率有可能是187 188也有可能是189

                        {
                                led=0;
                                ms_flag=1000;
                        }
                        
                else
                        {
                                led=1;
                        }
               
                ms_flag = 0;                   //1s計數標志復位

                send_flag = 1;                 //串口發送標志位置位

          TH0 = 0x00;                    //復位計數器

          TL0 = 0x00;                    //復位計數器        

        }

         TF1 = 0;                      //清中斷標志

}

/******************************************************************************

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

8#
ID:76027 發表于 2024-3-27 10:53 | 只看該作者
TTQ001 發表于 2024-3-20 08:28
設置控件的容差范圍,例如將閾值設置在 185 Hz 和 190 Hz 之間。

要檢測多個頻率,并且頻率間相差太近,實測有重疊的部分。只有提高精度才行。
回復

使用道具 舉報

7#
ID:76027 發表于 2024-3-27 10:25 | 只看該作者
我現在的做法是freq >=187 || freq <=189,但檢測速度有點慢,有沒有提高速度的方法,中斷是不是快一點。
回復

使用道具 舉報

6#
ID:420836 發表于 2024-3-20 08:28 | 只看該作者
設置控件的容差范圍,例如將閾值設置在 185 Hz 和 190 Hz 之間。
回復

使用道具 舉報

5#
ID:76027 發表于 2024-3-19 21:24 | 只看該作者
wulin 發表于 2024-3-19 21:09
用外部中斷取樣計算頻率要好些。
//T0中斷服務函數
void Timer0_Isr() interrupt 1

感謝大佬,我試試。
回復

使用道具 舉報

地板
ID:213173 發表于 2024-3-19 21:09 | 只看該作者
用外部中斷取樣計算頻率要好些。
//T0中斷服務函數
void Timer0_Isr() interrupt 1
{
        count++;
}
//INT0中斷服務函數
void INT0_Isr() interrupt 0
{       
        TR0=0;                            //關定時器0
        Cnt_us=(count*65536)+(TH0<<8|TL0);//讀取定時器0中計數值
        TL0 = 0x00;                       //定時器0計數值清0
        TH0 = 0x00;                       //定時器0計數值清0
        TR0=1;                            //開定時器0
        count=0;                          //中斷計數值清0
}
//初始化定時器T0
void Timer0_Init(void)                //@12.000MHz
{
        AUXR &= 0x7F;                     //定時器時鐘12T模式
        TMOD &= 0xF0;                     //設置定時器模式1
        TMOD |= 0x01;                     //設置定時器模式1
        TL0 = 0x00;                       //設置定時初始值
        TH0 = 0x00;                       //設置定時初始值
        TF0 = 0;                          //清除TF0標志
        TR0 = 0;                          //關定時器0
}
回復

使用道具 舉報

板凳
ID:76027 發表于 2024-3-19 19:39 | 只看該作者
Hephaestus 發表于 2024-3-19 17:15
把freq ==188改成freq >=187 && freq

謝謝,我試試。
回復

使用道具 舉報

沙發
ID:883242 發表于 2024-3-19 17:15 | 只看該作者
把freq ==188改成freq >=187 && freq <=189不就行了嗎?
回復

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天天天天天天天干 | 中文字幕一区二区三区精彩视频 | 一区二区中文字幕 | 欧美激情 一区 | 久草久草久草 | 久久久精品一区 | 人干人操| 天天搞夜夜操 | 久热9| 九九视频在线观看视频6 | 国产在线一区二区三区 | 国产区高清 | 国产精品日韩欧美一区二区三区 | 性一交一乱一透一a级 | 欧美日韩综合一区 | 国内久久精品 | 天天色天天色 | 欧美久久综合 | 99久热在线精品视频观看 | 91久久国产综合久久91精品网站 | 91电影| 国产一二区在线 | av网站免费看 | 日韩不卡三区 | 91视频91| 97精品超碰一区二区三区 | 国产乱码精品一区二区三区中文 | 一二区视频 | 亚洲高清在线观看 | 涩涩视频在线观看免费 | 丁香婷婷在线视频 | 91看片在线观看 | 国产成人精品免高潮在线观看 | 国内91在线 | 91福利网 | 一区二区三区国产好 | 欧美综合一区 | 久久亚洲一区二区三区四区 | 黄网免费看 | av免费网址 | 亚洲一区二区三区欧美 |