找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3041|回復: 11
收起左側

關于單片機C語言函數(shù)調(diào)用問題

[復制鏈接]
ID:243971 發(fā)表于 2021-1-19 20:54 | 顯示全部樓層 |閱讀模式
當我只調(diào)用了5ms后,編譯完成時他還把15ms的函數(shù)警告了下未調(diào)用,可不可以有什么指令讓編譯器知道我不用delay.h的15ms延時函數(shù),不要去編譯我沒調(diào)用過的函數(shù)

/******************************************************/
//包含頭文件
/******************************************************/
#include "config.h"
#include "delay.h"

/******************************************************/
//函數(shù)名稱:Delay15ms
/******************************************************/
void delay15ms()
{
        uint8 i,j;
        i = 27;
        j = 226;
        do
        {
                while (--j);
                _nop_();
        }
        while(--i);
}
/******************************************************/
//函數(shù)名稱:Delay5ms
/******************************************************/
void delay5ms(void)   //誤差 0us
{
    unsigned char a,b;
    for(b=185;b>0;b--)
        for(a=12;a>0;a--);
}


回復

使用道具 舉報

ID:213173 發(fā)表于 2021-1-20 06:30 | 顯示全部樓層
如果你明確的知道某函數(shù)沒有調(diào)用并不影響程序正常運行可以忽略這個警告或者把它屏蔽掉。編譯器只對語法作判斷,不對邏輯作判斷。
回復

使用道具 舉報

ID:592807 發(fā)表于 2021-1-20 08:52 | 顯示全部樓層
/*
用這個注釋掉
*/
回復

使用道具 舉報

ID:752974 發(fā)表于 2021-1-20 09:08 | 顯示全部樓層
第一如樓上所說。第二可以使用條件編譯。
回復

使用道具 舉報

ID:879074 發(fā)表于 2021-1-20 09:33 | 顯示全部樓層
編譯器不會去管你的邏輯,他只管你的語法,語法正確就正常輸出
回復

使用道具 舉報

ID:390416 發(fā)表于 2021-1-20 09:59 | 顯示全部樓層
真不知道你是看什么資料學的,還在糾結delay 這種死等多少時間。
第一、不同單片機內(nèi)核,速度不一樣。你算出來的0誤差有啥用?
第二、不同的變量長度,執(zhí)行速度不一樣。你算出來的0誤差有啥用?
第三、變量在不同的位置,讀寫速度又不一樣。你算出來的0誤差有啥用?
第四、中斷一打開,誤差可能出現(xiàn)500%。你算出來的0誤差有啥用?
超過50us的延遲,就不要再用死等了。
回復

使用道具 舉報

ID:243971 發(fā)表于 2021-1-20 12:49 | 顯示全部樓層
munuc_w 發(fā)表于 2021-1-20 09:08
第一如樓上所說。第二可以使用條件編譯。

條件編譯嗎,我明白了,我就是想不到這個詞,我下來查查,看怎么用
回復

使用道具 舉報

ID:243971 發(fā)表于 2021-1-20 12:56 | 顯示全部樓層
wulin 發(fā)表于 2021-1-20 06:30
如果你明確的知道某函數(shù)沒有調(diào)用并不影響程序正常運行可以忽略這個警告或者把它屏蔽掉。編譯器只對語法作判 ...

我明白了,確實不會影響編譯,其實我就是想把一些函數(shù)當成功能模塊,要用的時候在配置頭文件里把這個功能開啟調(diào)出來用它,如果后面函數(shù)模塊越來越多,那不是警告就越來越多了,我就光考慮這點了
回復

使用道具 舉報

ID:243971 發(fā)表于 2021-1-20 12:56 | 顯示全部樓層

你這個辦法可行
回復

使用道具 舉報

ID:592807 發(fā)表于 2021-1-20 13:33 | 顯示全部樓層
人人學會單片機 發(fā)表于 2021-1-20 09:59
真不知道你是看什么資料學的,還在糾結delay 這種死等多少時間。
第一、不同單片機內(nèi)核,速度不一樣。你算 ...

一般用到這種死等的都懶得開定時器的,或者定時器不夠用的。delay在STM32里面有專門的滴答定時器51好像沒有。
回復

使用道具 舉報

ID:828160 發(fā)表于 2021-1-20 13:34 | 顯示全部樓層
LX51 REMOVEUNUSED 了解一下
回復

使用道具 舉報

ID:359272 發(fā)表于 2021-1-20 15:08 | 顯示全部樓層
注釋掉,或者做個條件編譯
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表