找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3016|回复: 11
打印 上一主题 下一主题
收起左侧

关于单片机C语言函数调用问题

[复制链接]
跳转到指定楼层
楼主
ID:243971 发表于 2021-1-19 20:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当我只调用了5ms后,编译完成时他还把15ms的函数警告了下未调用,可不可以有什么指令让编译器知道我不用delay.h的15ms延时函数,不要去编译我没调用过的函数

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

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


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:213173 发表于 2021-1-20 06:30 | 只看该作者
如果你明确的知道某函数没有调用并不影响程序正常运行可以忽略这个警告或者把它屏蔽掉。编译器只对语法作判断,不对逻辑作判断。
回复

使用道具 举报

板凳
ID:592807 发表于 2021-1-20 08:52 | 只看该作者
/*
用这个注释掉
*/
回复

使用道具 举报

地板
ID:752974 发表于 2021-1-20 09:08 | 只看该作者
第一如楼上所说。第二可以使用条件编译。
回复

使用道具 举报

5#
ID:879074 发表于 2021-1-20 09:33 | 只看该作者
编译器不会去管你的逻辑,他只管你的语法,语法正确就正常输出
回复

使用道具 举报

6#
ID:390416 发表于 2021-1-20 09:59 | 只看该作者
真不知道你是看什么资料学的,还在纠结delay 这种死等多少时间。
第一、不同单片机内核,速度不一样。你算出来的0误差有啥用?
第二、不同的变量长度,执行速度不一样。你算出来的0误差有啥用?
第三、变量在不同的位置,读写速度又不一样。你算出来的0误差有啥用?
第四、中断一打开,误差可能出现500%。你算出来的0误差有啥用?
超过50us的延迟,就不要再用死等了。
回复

使用道具 举报

7#
ID:243971 发表于 2021-1-20 12:49 | 只看该作者
munuc_w 发表于 2021-1-20 09:08
第一如楼上所说。第二可以使用条件编译。

条件编译吗,我明白了,我就是想不到这个词,我下来查查,看怎么用
回复

使用道具 举报

8#
ID:243971 发表于 2021-1-20 12:56 | 只看该作者
wulin 发表于 2021-1-20 06:30
如果你明确的知道某函数没有调用并不影响程序正常运行可以忽略这个警告或者把它屏蔽掉。编译器只对语法作判 ...

我明白了,确实不会影响编译,其实我就是想把一些函数当成功能模块,要用的时候在配置头文件里把这个功能开启调出来用它,如果后面函数模块越来越多,那不是警告就越来越多了,我就光考虑这点了
回复

使用道具 举报

9#
ID:243971 发表于 2021-1-20 12:56 | 只看该作者
黄youhui 发表于 2021-1-20 08:52
/*
用这个注释掉
*/

你这个办法可行
回复

使用道具 举报

10#
ID:592807 发表于 2021-1-20 13:33 | 只看该作者
人人学会单片机 发表于 2021-1-20 09:59
真不知道你是看什么资料学的,还在纠结delay 这种死等多少时间。
第一、不同单片机内核,速度不一样。你算 ...

一般用到这种死等的都懒得开定时器的,或者定时器不够用的。delay在STM32里面有专门的滴答定时器51好像没有。
回复

使用道具 举报

11#
ID:828160 发表于 2021-1-20 13:34 | 只看该作者
LX51 REMOVEUNUSED 了解一下
回复

使用道具 举报

12#
ID:359272 发表于 2021-1-20 15:08 | 只看该作者
注释掉,或者做个条件编译
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表