找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1530|回复: 11
收起左侧

求指点,怎么写一个通用的函数?

  [复制链接]
ID:879924 发表于 2021-11-11 09:59 来自手机 | 显示全部楼层 |阅读模式
有4个电机A,B,C,D!
设定sbit A,B,C,D四个引脚来控制他们。
怎么用一个通用的函数实现呢?

但是难不成必须写四个函数?
回复

使用道具 举报

ID:879924 发表于 2021-11-11 10:02 来自手机 | 显示全部楼层
有4个电机A,B,C,D! 设定sbit A,B,C,D四个引脚来控制他们。 怎么用一个通用的函数实现呢?  也就是我想控制A的时候,函数里对应的控制引脚变为A,想B的时候变成B,想C变成C!  但是这些sbit的引脚又不能作为参数传进去啊!  但是难不成必须写四个函数?
回复

使用道具 举报

ID:332444 发表于 2021-11-11 10:56 | 显示全部楼层
sbit A,B,C,D具体是什么?
回复

使用道具 举报

ID:332444 发表于 2021-11-11 11:04 | 显示全部楼层
回复

使用道具 举报

ID:824490 发表于 2021-11-11 11:18 | 显示全部楼层
void motor_run(u8 id, bit dir)
{
  switch (id)
{
  case 0:
  //
  //
  break;
  ....

}
}
回复

使用道具 举报

ID:750420 发表于 2021-11-11 11:26 | 显示全部楼层
题主描述不清,一个电机需要几个引脚控制?分别是什么状态?例如电机A由1、2两个引脚控制,1为高电平2为低电平则正转,1为低电平2为高电平则反转,12电平相等则不动。题主的电机的控制方式是什么?麻烦描述清楚
回复

使用道具 举报

ID:624769 发表于 2021-11-11 12:59 | 显示全部楼层
人不能太懒……
先把不通用的函数,分别写出来,看看有没有共同点,然后考虑整合成通用,或者半通用函数,很多时候由于逻辑不同,强行整合成“通用”函数,不光效率下降,很可能代码量也会增大,这其实除了看上去似乎NB一点,实际应用上其实是得不偿失的。
回复

使用道具 举报

ID:415064 发表于 2021-11-11 13:51 | 显示全部楼层
4个一样的结构体,这个结构体里面引脚不一样,然后函数的入口传的是结构体
回复

使用道具 举报

ID:879924 发表于 2021-11-14 20:24 | 显示全部楼层
谢谢大家 用了swtich case 解决了!!!
回复

使用道具 举报

ID:104472 发表于 2021-11-14 20:47 | 显示全部楼层
用宏定义也可以,写好一个电机程序,引入变量,这个变量就是I/O口,通过不同变量,引用子函数就可以了。
回复

使用道具 举报

ID:420836 发表于 2021-11-15 01:44 | 显示全部楼层
编写一个具有通用输入和输出的函数。 控制是通用的。 调用控件时,分别使用A、B、C、D作为函数的输入,将输出传递给对应的设备。
回复

使用道具 举报

ID:446156 发表于 2021-11-15 09:04 | 显示全部楼层
就像11楼所说的使用函数指针,楼主有功能封装的想法是非常好的
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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