OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6484|回复: 6

编写程序时使用宏函数的问题

[复制链接]

2

主题

5

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2021-8-10
在线时间
5 小时
发表于 2021-8-10 18:08:30 | 显示全部楼层 |阅读模式
2金钱
问题背景是这样:
已知某种型号的L298N驱动控制逻辑如下:
屏幕截图 2021-08-10 180559.png
使用stm32F4系列的单片机,选用D口的某些IO口来输出IN1、IN2的逻辑信号,现在要读取这个信号来判断驱动处于哪种控制模式。
下面是我学长的做法(假定EN已经使能):
屏幕截图 2021-08-10 180616.png
他说这种方式效率高,但我认为32单片机资源够用,使用普通函数会使得逻辑更清晰。
学长的做法是正确且合适的吗?是否还有更好的做法?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2021-8-11 02:20:38 | 显示全部楼层
确实可以写简单一点,你说这样效率高那也是有道理。
回复

使用道具 举报

13

主题

250

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2248
金钱
2248
注册时间
2019-8-7
在线时间
364 小时
发表于 2021-8-11 08:55:52 | 显示全部楼层
他这样写挺清晰的呀,首先排除你普通函数的想法 你可以自己写一下代码看看 ,?运算符这样用值得我们学习
回复

使用道具 举报

56

主题

343

帖子

0

精华

高级会员

Rank: 4

积分
977
金钱
977
注册时间
2016-3-8
在线时间
267 小时
发表于 2021-8-11 09:24:30 | 显示全部楼层
用了不常用的语法而已,代码会简洁很多,但是效率高不高也不一定,本质还是逻辑判断。。觉得看不习惯可以用if else 重写。
回复

使用道具 举报

4

主题

896

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4309
金钱
4309
注册时间
2019-9-4
在线时间
896 小时
发表于 2021-8-11 09:47:38 | 显示全部楼层
我觉得这样写没问题,逻辑也算清晰
回复

使用道具 举报

4

主题

456

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1072
金钱
1072
注册时间
2021-4-26
在线时间
352 小时
发表于 2021-8-11 10:05:06 | 显示全部楼层
写的没错,用三目运算符是最简洁的
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4105
金钱
4105
注册时间
2018-8-14
在线时间
696 小时
发表于 2021-8-11 11:02:41 | 显示全部楼层
现在的编译器是越来越聪明, 不管你是否用这方法, 编译出来很可能都差不多。
条条大路通罗马, 别自己给自己给画个圈。
但你要问这是否最高效, 可以告诉你不是。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 05:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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