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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3752|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

STC12C5A60S2單片機(jī)定時(shí)計(jì)數(shù)出現(xiàn)不知道的問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:826942 發(fā)表于 2020-11-3 17:28 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
最近在用60S2做以后測(cè)風(fēng)速的實(shí)驗(yàn),但是在定時(shí)計(jì)數(shù)上出現(xiàn)問題,只用T1的計(jì)數(shù)功能沒問題,但是風(fēng)速不能清零,要用T0定時(shí)一秒的話,就檢測(cè)不到風(fēng)速,有大佬知道原因嗎?源碼如下

void  Timer1_init(void)
{
        TMOD = 0X62;//1設(shè)定定時(shí)器1模式2,計(jì)數(shù)功能0110 定時(shí)器0模式2,定時(shí)功能 0010
        TH1  = 0xfe;//設(shè)置定計(jì)數(shù)器初值  PS這里有兩種思路 1 一個(gè)脈沖溢出 進(jìn)T1的服務(wù)函數(shù)加一 ,或者直接計(jì)數(shù)在T0的服務(wù)函數(shù)里讀值
        TL1  = 0xfe;
        TH0  =(65536-50000)/256;//50ms中斷一次
  TL0  =(65536-50000)%256;
        ET0  = 1;
        ET1 = 1;
        TR0  = 1;
        TR1 = 1; //啟動(dòng)定時(shí)器
        EA   = 1;
}
/*---------------------T0中斷服務(wù)子函數(shù)------------------*/
/*
void Timer0_int(void) interrupt 1  using  2  //定時(shí)T0中斷服務(wù)程序
                TR0=0;TR1=0;//先關(guān)閉定時(shí)器
        //                fs=TH1;
                //fs=fs << 8;
   // fs=        TL1;
    flag=1;      //轉(zhuǎn)換結(jié)束
                TH1=1;TL1=1; //清0重新計(jì)數(shù)
          TR0=1;TR1=1;        TF0=0;
         }
}
/*---------------------T1中斷服務(wù)子函數(shù)------------------*/
/*
void Timer1_int(void) interrupt 3 using  1   //計(jì)數(shù)T1中斷服務(wù)程序
{
        fs++;
        //TF1=0;
}


如果只用T1的服務(wù)函數(shù)就可以準(zhǔn)確讀取FS的脈沖,但是要同時(shí)用T0的服務(wù)函數(shù) T0會(huì)增加 但是T1的FS就讀不出來
    post_newreply
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:213173 發(fā)表于 2020-11-3 21:23 | 只看該作者
一般采用一個(gè)定時(shí)器作外部脈沖計(jì)數(shù)器,一個(gè)定時(shí)器作秒計(jì)時(shí)。例如:
外部脈沖計(jì)數(shù)值=TF1溢出次數(shù)*65536+(TH1*256+TL1)
void  Timer1_init(void)
{
        TMOD = 0X52;//設(shè)T0自動(dòng)重裝定時(shí)功能,T1外部計(jì)數(shù)功能
        TH0  = 0x06;//250us
        TL0  = 0x06;
        TH1  = 0x00;
        TL1  = 0x00;
        TF1  = 0;
        TR0  = 1;
        TR1  = 1;
        ET0  = 1;
        EA   = 1;
}

void Timer0_int(void) interrupt 1
{
        if(TF1==1)
        {
                TF1=0;
                count1++;
        }
        num++;
        if(nmu>=4000)//1秒
        {
                num=0;
                TR1=0;
                count2=count1*65536+(TH1<<8|TL1);
                TH1=0x00;
                TL1=0x00;
                TR1=1;
        }
}
回復(fù)

使用道具 舉報(bào)

板凳
ID:826942 發(fā)表于 2020-11-3 22:39 | 只看該作者
wulin 發(fā)表于 2020-11-3 21:23
一般采用一個(gè)定時(shí)器作外部脈沖計(jì)數(shù)器,一個(gè)定時(shí)器作秒計(jì)時(shí)。例如:
外部脈沖計(jì)數(shù)值=TF1溢出次數(shù)*65536+(TH ...

我這也是一個(gè)t0做秒計(jì)時(shí),t1外部脈沖計(jì)數(shù),只是兩個(gè)分成兩個(gè)中斷服務(wù)函數(shù),只是不明白是那里出的問題
如果用t0的那個(gè),我那個(gè)讀取脈沖的方式有沒有問題?沒有的話那為什么實(shí)際操作時(shí)不能讀取?求
大佬指點(diǎn)迷津
回復(fù)

使用道具 舉報(bào)

地板
ID:213173 發(fā)表于 2020-11-4 08:06 | 只看該作者
0711zhao 發(fā)表于 2020-11-3 22:39
我這也是一個(gè)t0做秒計(jì)時(shí),t1外部脈沖計(jì)數(shù),只是兩個(gè)分成兩個(gè)中斷服務(wù)函數(shù),只是不明白是那里出的問題
如 ...

樓主這段程序從構(gòu)思到代碼都有錯(cuò)誤。T0模式2最大定時(shí)時(shí)間256us,不可能產(chǎn)生50ms中斷。T1初值0xfe,外部計(jì)數(shù)2個(gè)脈沖即發(fā)生中斷,也就是外部脈沖數(shù)=fs*2。如果兩個(gè)中斷沒有協(xié)調(diào)好也會(huì)發(fā)生沖突。
類似功能的程序常采用外部中斷+定時(shí)器計(jì)數(shù),樓主可以參考頻率表的設(shè)計(jì),壇內(nèi)示例很多。
回復(fù)

使用道具 舉報(bào)

5#
ID:826942 發(fā)表于 2020-11-4 08:59 | 只看該作者
wulin 發(fā)表于 2020-11-4 08:06
樓主這段程序從構(gòu)思到代碼都有錯(cuò)誤。T0模式2最大定時(shí)時(shí)間256us,不可能產(chǎn)生50ms中斷。T1初值0xfe,外部計(jì) ...

謝謝大佬的指點(diǎn)
回復(fù)

使用道具 舉報(bào)

6#
ID:826942 發(fā)表于 2020-11-4 16:59 | 只看該作者
wulin 發(fā)表于 2020-11-4 08:06
樓主這段程序從構(gòu)思到代碼都有錯(cuò)誤。T0模式2最大定時(shí)時(shí)間256us,不可能產(chǎn)生50ms中斷。T1初值0xfe,外部計(jì) ...

大佬你好,我用你這段代碼后,只要一有外部脈沖就顯示白屏,懷疑是哪個(gè)地方出問題,程序跑死了 ,但一直找不到原因。
回復(fù)

使用道具 舉報(bào)

7#
ID:213173 發(fā)表于 2020-11-5 08:08 | 只看該作者
0711zhao 發(fā)表于 2020-11-4 16:59
大佬你好,我用你這段代碼后,只要一有外部脈沖就顯示白屏,懷疑是哪個(gè)地方出問題,程序跑死了 ,但一直 ...

如果各功能函數(shù)沒有問題就要從程序構(gòu)架找問題,要防止中斷沖突。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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