笙泉单片机官网,各位知多少

21ic官方微信-->
后使用快捷导航没有帐号?
查看: 1596|回复: 20
灯是灭呢?还是开?
&&已结帖(20)
主题帖子积分
资深工程师, 积分 14380, 距离下一级还需 5620 积分
资深工程师, 积分 14380, 距离下一级还需 5620 积分
主题帖子积分
专家等级:结帖率:90%
主题帖子积分
资深工程师, 积分 14380, 距离下一级还需 5620 积分
资深工程师, 积分 14380, 距离下一级还需 5620 积分
具体就是:
一调光电路中,灯灭的时候,对应一个信号是0;
而灯亮的时候,对应该信号则是PWM(100HZ,占空比5%~95%,仅有1,0电平构成PWM)波,灯的亮度与此PWM占空比成比例;
现欲将此信号作为输入给单片机(C51),单片机只需据此判断出任意时刻时,灯是灭呢?还是开(任意亮度)?
满意回复+20
通过判断0,1
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 13421, 距离下一级还需 6579 积分
资深工程师, 积分 13421, 距离下一级还需 6579 积分
主题帖子积分
专家等级:结帖率:90%
主题帖子积分
资深工程师, 积分 13421, 距离下一级还需 6579 积分
资深工程师, 积分 13421, 距离下一级还需 6579 积分
通过判断0,1
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 11629, 距离下一级还需 8371 积分
资深工程师, 积分 11629, 距离下一级还需 8371 积分
主题帖子积分
专家等级:结帖率:93%
主题帖子积分
资深工程师, 积分 11629, 距离下一级还需 8371 积分
资深工程师, 积分 11629, 距离下一级还需 8371 积分
一是要引入过零判断,而是比较容易误判,PWM里有0,也有1,视过零点和占空比
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 10826, 距离下一级还需 9174 积分
资深工程师, 积分 10826, 距离下一级还需 9174 积分
主题帖子积分
专家等级:结帖率:91%
主题帖子积分
资深工程师, 积分 10826, 距离下一级还需 9174 积分
资深工程师, 积分 10826, 距离下一级还需 9174 积分
若能计算一个周期内值的总和,则还要引入过零检测,若为0,则是关状态,若不为0,则为开,但应如何设这采样率?尤其占空比较大即1电平时间较短(例如5%)时候,如何设置采样率才不会误判?
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 10762, 距离下一级还需 9238 积分
资深工程师, 积分 10762, 距离下一级还需 9238 积分
主题帖子积分
专家等级:结帖率:91%
主题帖子积分
资深工程师, 积分 10762, 距离下一级还需 9238 积分
资深工程师, 积分 10762, 距离下一级还需 9238 积分
读到IO口有高不就知道灯亮了吗
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 10498, 距离下一级还需 9502 积分
资深工程师, 积分 10498, 距离下一级还需 9502 积分
主题帖子积分
专家等级:结帖率:93%
主题帖子积分
资深工程师, 积分 10498, 距离下一级还需 9502 积分
资深工程师, 积分 10498, 距离下一级还需 9502 积分
嗯,用中断口可以
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 10512, 距离下一级还需 9488 积分
资深工程师, 积分 10512, 距离下一级还需 9488 积分
主题帖子积分
专家等级:结帖率:93%
主题帖子积分
资深工程师, 积分 10512, 距离下一级还需 9488 积分
资深工程师, 积分 10512, 距离下一级还需 9488 积分
根据PWM周期来检验信号是否发生逻辑变化
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 10940, 距离下一级还需 9060 积分
资深工程师, 积分 10940, 距离下一级还需 9060 积分
主题帖子积分
专家等级:结帖率:94%
主题帖子积分
资深工程师, 积分 10940, 距离下一级还需 9060 积分
资深工程师, 积分 10940, 距离下一级还需 9060 积分
RC滤波为直流电压
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 10607, 距离下一级还需 9393 积分
资深工程师, 积分 10607, 距离下一级还需 9393 积分
主题帖子积分
专家等级:结帖率:94%
主题帖子积分
资深工程师, 积分 10607, 距离下一级还需 9393 积分
资深工程师, 积分 10607, 距离下一级还需 9393 积分
RC滤波为直流电压方案实验:
由于原PWM信号还有别的用途,故用了个或门,另一个输入接地,则输出就等于该PWM,把输出处理,则不改变原PWM信号的波形。
或门输出端焊了个RC滤波回路,RC串联,R取10K,C取100UF电解电容,取电解电容电压作为取样电压,由于该PWM占空比可调,则示波器观察到取样电压随着PWM占空比的改变而变化,最大输出值只有2.5V.
说明:PWM是高电平=3.3V,低电平=0V的方波。
无论PWM占空比是多少,RC滤波均能输出其高电压3.3V吗?如能,请推荐个参数。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 10517, 距离下一级还需 9483 积分
资深工程师, 积分 10517, 距离下一级还需 9483 积分
主题帖子积分
专家等级:结帖率:91%
主题帖子积分
资深工程师, 积分 10517, 距离下一级还需 9483 积分
资深工程师, 积分 10517, 距离下一级还需 9483 积分
嗯,当PWM为5%时,直接RC滤波的电压 可能低于 单片机 高电平门槛,导致误读为0
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 12004, 距离下一级还需 7996 积分
资深工程师, 积分 12004, 距离下一级还需 7996 积分
主题帖子积分
专家等级:结帖率:93%
主题帖子积分
资深工程师, 积分 12004, 距离下一级还需 7996 积分
资深工程师, 积分 12004, 距离下一级还需 7996 积分
只需要判断是否有没PWM而已,有没必要又虑波又比较的?
典型的简单事情复杂化。
只需要简单计数一下20MS内有没脉冲就知道是0还是PWM了。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 12058, 距离下一级还需 7942 积分
资深工程师, 积分 12058, 距离下一级还需 7942 积分
主题帖子积分
专家等级:结帖率:91%
主题帖子积分
资深工程师, 积分 12058, 距离下一级还需 7942 积分
资深工程师, 积分 12058, 距离下一级还需 7942 积分
才两K的信号嘛,开个定时器10K,随便都能扫到它
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 11443, 距离下一级还需 8557 积分
资深工程师, 积分 11443, 距离下一级还需 8557 积分
主题帖子积分
专家等级:结帖率:90%
主题帖子积分
资深工程师, 积分 11443, 距离下一级还需 8557 积分
资深工程师, 积分 11443, 距离下一级还需 8557 积分
多统计几次不就玩了? 哈哈
如果都是0,则是关闭状态。。。否则,相反。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 10698, 距离下一级还需 9302 积分
资深工程师, 积分 10698, 距离下一级还需 9302 积分
主题帖子积分
专家等级:结帖率:91%
主题帖子积分
资深工程师, 积分 10698, 距离下一级还需 9302 积分
资深工程师, 积分 10698, 距离下一级还需 9302 积分
用电容隔直后,用三极管转换,再RC滤波
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 11592, 距离下一级还需 8408 积分
资深工程师, 积分 11592, 距离下一级还需 8408 积分
主题帖子积分
专家等级:结帖率:93%
主题帖子积分
资深工程师, 积分 11592, 距离下一级还需 8408 积分
资深工程师, 积分 11592, 距离下一级还需 8408 积分
如果不判断PWM宽度
最简单方式:将PWM直接接51的中断IO,但不打开中断。这样只要检查中断标志有无出现,就知道PWM有无输出。
如果需要判断PWM,5L的可以简单的用非门反向,电压就是从高到低变化。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 10456, 距离下一级还需 9544 积分
资深工程师, 积分 10456, 距离下一级还需 9544 积分
主题帖子积分
专家等级:结帖率:91%
主题帖子积分
资深工程师, 积分 10456, 距离下一级还需 9544 积分
资深工程师, 积分 10456, 距离下一级还需 9544 积分
根据PWM周期来检验信号是否发生逻辑变化
只需用到信号外部中断和内部定时器中断即可完成,很简单的
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 14380, 距离下一级还需 5620 积分
资深工程师, 积分 14380, 距离下一级还需 5620 积分
主题帖子积分
专家等级:结帖率:90%
主题帖子积分
资深工程师, 积分 14380, 距离下一级还需 5620 积分
资深工程师, 积分 14380, 距离下一级还需 5620 积分
再次非常感谢各位的建议,先用一或门将该信号引出,因其还要去驱动MOSFET管呢(具体方法见上贴5楼);然后查该IC(51内核)芯片手册,该芯片对输入的信号判断为0还是1不是根据电压(Vil和Vih),而是根据电流(Iil和Iih)大小来定的,大喜,这样即使PWM占空比最大95%(此时1电平5%,0电平95%,以前占空比的定义搞反,特别更正,不好意思,哈哈),RC滤波只有1.6V, 经实验,该51内核的IC依然可以判断为1,问题解决!
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 14380, 距离下一级还需 5620 积分
资深工程师, 积分 14380, 距离下一级还需 5620 积分
主题帖子积分
专家等级:结帖率:90%
主题帖子积分
资深工程师, 积分 14380, 距离下一级还需 5620 积分
资深工程师, 积分 14380, 距离下一级还需 5620 积分
结贴了,再次谢谢大家
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 19346, 距离下一级还需 654 积分
资深工程师, 积分 19346, 距离下一级还需 654 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
资深工程师, 积分 19346, 距离下一级还需 654 积分
资深工程师, 积分 19346, 距离下一级还需 654 积分
这个叫吃饱了撑着。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
主题帖子积分
专家等级:结帖率:93%打赏:0.00受赏:48.10
主题帖子积分
1、判断是否有1,有就是开着,不用管时间多少的。
2、二极管串个电容,给电容值充电不放电,判断电容上的电压,受PWM影响严重,适合与精度不高的时候。
年轻不是资本,奋斗才是良策!
核心会员奖章
等级类勋章
技术导师奖章
人才类勋章
时间类勋章
坚毅之洋流
发帖类勋章
技术高手奖章
人才类勋章
时间类勋章笙泉单片机烧写工具_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
笙泉单片机烧写工具
上传于|0|0|文档简介
&&笙泉单片机烧写工具使用明细
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢21ic官方微信-->
后使用快捷导航没有帐号?
查看: 229|回复: 16
指令的意义
&&已结帖(20)
主题帖子积分
资深工程师, 积分 10607, 距离下一级还需 9393 积分
资深工程师, 积分 10607, 距离下一级还需 9393 积分
主题帖子积分
专家等级:结帖率:94%
主题帖子积分
资深工程师, 积分 10607, 距离下一级还需 9393 积分
资深工程师, 积分 10607, 距离下一级还需 9393 积分
用C语言编写的单片机程序,含有多个C文件,多个h 文件,在含有main函数的C文件中,第一条指令是#define a,这里的a泛指一个变量,而在用户自定义的一个h文件中,与之对应的有这样几条指令:
#ifndef a& &
& & #define EXT extern
& && &#define EXT
我知道这是条件编译,这样写结果是执行:&&#define EXT
我要问的是,这几条指令的意义是什么?
满意回复+20
这种用法应该是在h文件中定义各个C文件用到的变量,然后每个C文件都包含所有的h文件,对于有#define a的C文件来说,EXT被空字符串替换,EXT
int var1其实就是i ...
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 12004, 距离下一级还需 7996 积分
资深工程师, 积分 12004, 距离下一级还需 7996 积分
主题帖子积分
专家等级:结帖率:93%
主题帖子积分
资深工程师, 积分 12004, 距离下一级还需 7996 积分
资深工程师, 积分 12004, 距离下一级还需 7996 积分
这种用法应该是在h文件中定义各个C文件用到的变量,然后每个C文件都包含所有的h文件,对于有#define a的C文件来说,EXT被空字符串替换,EXT&&int var1其实就是int var1,是定义一个变量,对于没有#define a的C文件来说,EXT被extern替换,EXT&&int var1就是extern int var1,是声明一个外部变量。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 12058, 距离下一级还需 7942 积分
资深工程师, 积分 12058, 距离下一级还需 7942 积分
主题帖子积分
专家等级:结帖率:91%
主题帖子积分
资深工程师, 积分 12058, 距离下一级还需 7942 积分
资深工程师, 积分 12058, 距离下一级还需 7942 积分
嗯,这样做的好处就是可以在各个h文件中定义相应C文件中使用的变量,然后每个C文件都包含所有的C文件。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 11443, 距离下一级还需 8557 积分
资深工程师, 积分 11443, 距离下一级还需 8557 积分
主题帖子积分
专家等级:结帖率:90%
主题帖子积分
资深工程师, 积分 11443, 距离下一级还需 8557 积分
资深工程师, 积分 11443, 距离下一级还需 8557 积分
不过就是把 xxxx 的声明区分开来嘛,
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 10698, 距离下一级还需 9302 积分
资深工程师, 积分 10698, 距离下一级还需 9302 积分
主题帖子积分
专家等级:结帖率:91%
主题帖子积分
资深工程师, 积分 10698, 距离下一级还需 9302 积分
资深工程师, 积分 10698, 距离下一级还需 9302 积分
一个是变量的“声明”,一个是变量的“定义”,搞清楚这两者的区别,这个问题也就清楚了
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 10923, 距离下一级还需 9077 积分
资深工程师, 积分 10923, 距离下一级还需 9077 积分
主题帖子积分
专家等级:结帖率:90%
主题帖子积分
资深工程师, 积分 10923, 距离下一级还需 9077 积分
资深工程师, 积分 10923, 距离下一级还需 9077 积分
具体点说,
// 这是一个定义,在main文件中
// 这是一个声明,在非main文件中
如果去掉extern,连接的时候会报错:变量重复定义
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 11592, 距离下一级还需 8408 积分
资深工程师, 积分 11592, 距离下一级还需 8408 积分
主题帖子积分
专家等级:结帖率:93%
主题帖子积分
资深工程师, 积分 11592, 距离下一级还需 8408 积分
资深工程师, 积分 11592, 距离下一级还需 8408 积分
这样做的好处就是可以在一个h文件中定义所有C文件中使用的变量说明,然后每个C文件都包含这个h文件。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 10456, 距离下一级还需 9544 积分
资深工程师, 积分 10456, 距离下一级还需 9544 积分
主题帖子积分
专家等级:结帖率:91%
主题帖子积分
资深工程师, 积分 10456, 距离下一级还需 9544 积分
资深工程师, 积分 10456, 距离下一级还需 9544 积分
二楼笔误了,应该是“可以在各个h文件中定义相应C文件中使用的变量,然后每个C文件都包含所有的h文件。”
比如在a.c中#
#ifndef a& &
& & #define EXT extern
& && &#define EXT
& &&&EXT int var1;
#ifndef b& &
& & #define EXT extern
& && &#define EXT
& &&&EXT int var2;
在a.h中定义a.c用到的变量,在b.h中定义b.c用到的变量,然后a.c和b.c都包含a.h和b.h这两个头文件。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 10599, 距离下一级还需 9401 积分
资深工程师, 积分 10599, 距离下一级还需 9401 积分
主题帖子积分
专家等级:结帖率:91%
主题帖子积分
资深工程师, 积分 10599, 距离下一级还需 9401 积分
资深工程师, 积分 10599, 距离下一级还需 9401 积分
应该是:这样做的好处就是可以在各个h文件中定义所有C文件中使用的变量说明,然后每个C文件都包含所有的h文件。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 14380, 距离下一级还需 5620 积分
资深工程师, 积分 14380, 距离下一级还需 5620 积分
主题帖子积分
专家等级:结帖率:90%
主题帖子积分
资深工程师, 积分 14380, 距离下一级还需 5620 积分
资深工程师, 积分 14380, 距离下一级还需 5620 积分
原来各位都遇到过类似的问题,我看了谭浩强c程序设计的外部变量部分,就全明白了,大家不妨也翻翻书,或许有新的认识。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 13421, 距离下一级还需 6579 积分
资深工程师, 积分 13421, 距离下一级还需 6579 积分
主题帖子积分
专家等级:结帖率:90%
主题帖子积分
资深工程师, 积分 13421, 距离下一级还需 6579 积分
资深工程师, 积分 13421, 距离下一级还需 6579 积分
#include &my.h&
#ifdef& &GLOBAL
#define&&INIT_EXT
& & const unsigned char motor_TAB[]={0x1A,0x30,0x35,0x20,0x2A,0x00,0x05,0x10};
//=================================
extern const unsigned char motor_TAB[];
#define&&INIT_EXT extern
//===========================================================
//================& && &&&global variable& && &==============
//===========================================================
INIT_EXT&&unsigned char prin_status,delay_
INIT_EXT&&unsigned char delay_status,delay_
INIT_EXT&&unsigned char paper_out_
INIT_EXT&&unsigned char normal_num,error_num,flash_
INIT_EXT&&unsigned char new_motor_code,last_motor_
INIT_EXT&&unsigned char&&new_key_code,key_code,key_
INIT_EXT&&unsigned char Y_motor_point,W_motor_point,V_motor_
INIT_EXT&&unsigned char motor_Y_steps,motor_up_steps,motor_down_
INIT_EXT&&unsigned int num_J4,num_R4,num_R8,num_J8;
INIT_EXT&&unsigned int pulse_num,wash_
INIT_EXT&&unsigned int reset_
struct struc
& && && & unsigned keyflag:& && && &&&1;
& && && & unsigned keyflag0:& && && &&&1;
& && && & unsigned in_flag:& && && && && & 1;
& && && & unsigned out_flag:& && && && && & 1;
& && && & //unsigned opt_F_flag:& && &&&1;& && && && && && && && && && && && && && && && &//back opt sensor
& && && & unsigned flash_flag:& && &&&1;
& && && & unsigned wash_flag:& && && && && & 1;
INIT_EXT struct struc struc_&&
//===========================================================
//===============& && & function declare& && & ==============
//===========================================================
INIT_EXT void init(void);
INIT_EXT void port_init(void);
INIT_EXT void timer0_init(void);
INIT_EXT void timer1_init(void);
INIT_EXT void uart0_init(void);
INIT_EXT void init_devices(void);
INIT_EXT void reset(void);
//=================& && && && && & key& && && && && & =================
INIT_EXT void key_scan(void);
INIT_EXT void key_process(void);
这样所有文件都只要包含同一个头文件,只在某一个C文件中#define GLOBAL
对做单片机文件管理十分方便
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 11629, 距离下一级还需 8371 积分
资深工程师, 积分 11629, 距离下一级还需 8371 积分
主题帖子积分
专家等级:结帖率:93%
主题帖子积分
资深工程师, 积分 11629, 距离下一级还需 8371 积分
资深工程师, 积分 11629, 距离下一级还需 8371 积分
其实就是这样,在一个c文件中(一般是包含main()函数的文件)先定义所有的变量,然后对于其他的c文件,因为已经定义过了,所以就是声明外部变量了。声明和定义都是在文件开头包含同一个头文件。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 10826, 距离下一级还需 9174 积分
资深工程师, 积分 10826, 距离下一级还需 9174 积分
主题帖子积分
专家等级:结帖率:91%
主题帖子积分
资深工程师, 积分 10826, 距离下一级还需 9174 积分
资深工程师, 积分 10826, 距离下一级还需 9174 积分
参与讨论一下,看到这个结构,就看想到作者是怎么用了。如,
//-----------------------------------------
//在main.c中:
#include&&a.h& && &&&//声明
#define& &a
#include&&a.h& && &&&//定义
//-----------------------------------------
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 10826, 距离下一级还需 9174 积分
资深工程师, 积分 10826, 距离下一级还需 9174 积分
主题帖子积分
专家等级:结帖率:91%
主题帖子积分
资深工程师, 积分 10826, 距离下一级还需 9174 积分
资深工程师, 积分 10826, 距离下一级还需 9174 积分
这样做的目的可以说是偷懒吧,我个人一般不这样做的,对于程序的掌控不利。同时也可以看出来,作者的.h文件会包含其他的东西,也就是说,模块化没有彻底的干净,模块之间没有关联的东西最后不要外露,这样做是便于移植程序,也可以减少一些Bug,一般说来.h文件只包含extern 函数(外部变量可以用函数方式提供)就可以了,这个和操作系统的Api函数一样的道理。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 10762, 距离下一级还需 9238 积分
资深工程师, 积分 10762, 距离下一级还需 9238 积分
主题帖子积分
专家等级:结帖率:91%
主题帖子积分
资深工程师, 积分 10762, 距离下一级还需 9238 积分
资深工程师, 积分 10762, 距离下一级还需 9238 积分
这样做的好处就是可以在各个h文件中定义所有C文件中使用的变量说明,然后每个C文件都包含所有的h文件
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 10607, 距离下一级还需 9393 积分
资深工程师, 积分 10607, 距离下一级还需 9393 积分
主题帖子积分
专家等级:结帖率:94%
主题帖子积分
资深工程师, 积分 10607, 距离下一级还需 9393 积分
资深工程师, 积分 10607, 距离下一级还需 9393 积分
就这样吧,谢谢大家
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
资深工程师, 积分 10517, 距离下一级还需 9483 积分
资深工程师, 积分 10517, 距离下一级还需 9483 积分
主题帖子积分
专家等级:结帖率:91%
主题帖子积分
资深工程师, 积分 10517, 距离下一级还需 9483 积分
资深工程师, 积分 10517, 距离下一级还需 9483 积分
这用法是跟UCOS学的呢
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:}

我要回帖

更多关于 笙泉科技 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信