找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機 我在主函數(shù)加了一個子函數(shù)之后,我的按鍵函數(shù)就不能用了

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:725056 發(fā)表于 2020-5-1 16:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我在主函數(shù)加了一個子函數(shù)之后,我的按鍵函數(shù)就不能用了,我去掉那個加的函數(shù)后,按鍵函數(shù)又可以用了。這是什么原因造成的,編譯都沒問題。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:624817 發(fā)表于 2020-5-1 17:31 | 只看該作者
編譯器只會檢測語法有沒有錯  編譯通過只說明語法沒問題  加的子函數(shù)里面有沒有while循環(huán) 單片機是順序執(zhí)行的  這中情況一般是子函數(shù)里面有循環(huán)跳不出 導(dǎo)致無法執(zhí)行下一步
還有問這種問題要把有問題的源碼發(fā)一下 ,不然都是盲猜 ,這樣你解決問題的效率就低了  
回復(fù)

使用道具 舉報

板凳
ID:533011 發(fā)表于 2020-5-1 19:15 | 只看該作者
可能io口問題吧
回復(fù)

使用道具 舉報

地板
ID:452950 發(fā)表于 2020-5-1 22:19 | 只看該作者
程序在你加的那個子函數(shù)里面跑不出來,按鍵函數(shù)就等于不存在了。
回復(fù)

使用道具 舉報

5#
ID:725056 發(fā)表于 2020-5-2 10:21 | 只看該作者
Jiam 發(fā)表于 2020-5-1 17:31
編譯器只會檢測語法有沒有錯  編譯通過只說明語法沒問題  加的子函數(shù)里面有沒有while循環(huán) 單片機是順序執(zhí) ...

子函數(shù)涉及到的就這些,我把wendu()放到主函數(shù)就不行了。沒放按鍵還是可以實現(xiàn)的

unsigned char ADC0832()//ad轉(zhuǎn)換,返回結(jié)果,運用了I2c總線
{
        unsigned char i,data_c;
        data_c=0;

        ADC_CLK=0;
        ADC_DI=1;
        ADC_CS=0;//拉低cs端
        ADC_CLK=1;
        ADC_CLK=0;//拉低LCK端,形成下降沿1

        ADC_DI=1;//指定轉(zhuǎn)換通道是CH1還是CH2。H
        ADC_CLK=1;
        ADC_CLK=0;//拉低CLK端,形成下降沿2

        ADC_DI=0;//指定值右移一位,再取最后一位的值。L
        ADC_CLK=1;
        ADC_CLK=0;//拉低CLK,形成下降沿3

        ADC_DI=1;
        for(i=0;i<8;i++)//采集一次
        {
                ADC_CLK=1;
                ADC_CLK=0;
                if(ADC_DI)
                        data_c|=0x80>>i;
                //data_c=(data_c<<1)|ADC_DO;//在每個脈沖的下降沿DO輸出一位數(shù)據(jù),最終ch為8位二進制數(shù)
        }

        /*for(i=0;i<8;i++)//采集第二次
        {
                if(ADC_DI)
                        data_c|=0x01<<i;
                ADC_CLK=1;
                ADC_CLK=0;
        }*/

        ADC_CS=1;//取消片選 一個轉(zhuǎn)換周期結(jié)束
        ADC_CLK=1;//拉高數(shù)據(jù)端,回到初始狀態(tài)
        ADC_DI=1;
        return(data_c);
}

void disp_TP(float f_data)
{
        uint tp;
        if(f_data<0)
        {
                Disp1Char(9,0,('-'));
                tp=f_data;
                tp=tp-1;
                f_data=~tp;
        }

        f_data=f_data*100;
        DispStr(7,0,"T=");
        Disp1Char(10,0,((int)f_data/1000+0x30));
        Disp1Char(11,0,((int)f_data%1000/100+0x30));
        Disp1Char(12,0,('.'));
        Disp1Char(13,0,((int)f_data%1000%100/10+0x30));
        Disp1Char(14,0,(0xdf));
        Disp1Char(15,0,('C'));
}

void wendu()
{
        v=ADC0832();
        temp=v;
        RV=BaseVol/256*temp;
        RT=RV*10/(BaseVol-RV);
        tmpp=1/(1/TN+(log(RT/RN)/B))-273.15;

        disp_TP(tmpp);
        if(tmpp>h)//當(dāng)溫度大于h時,蜂鳴器響
                {
                        beep();
                        DispStr(3,1,"Th");
                        delaynms(20);
                }

                if(tmpp<g)//當(dāng)溫度小于g時,蜂鳴器響
                {
                        beep();
                        DispStr(3,1,"Tl");
                        delaynms(20);
                }
               

}
回復(fù)

使用道具 舉報

6#
ID:624817 發(fā)表于 2020-5-3 01:01 | 只看該作者
beep()這個函數(shù)可以發(fā)一下嗎   你按鍵函數(shù)發(fā)的這些沒問題 就算沒現(xiàn)象 也不影響   看看beep()里面有沒有死循環(huán)
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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