标题: 求指点,怎么写一个通用的函数? [打印本页]

作者: macboa    时间: 2021-11-11 09:59
标题: 求指点,怎么写一个通用的函数?
有4个电机A,B,C,D!
设定sbit A,B,C,D四个引脚来控制他们。
怎么用一个通用的函数实现呢?

但是难不成必须写四个函数?
作者: macboa    时间: 2021-11-11 10:02
有4个电机A,B,C,D! 设定sbit A,B,C,D四个引脚来控制他们。 怎么用一个通用的函数实现呢?  也就是我想控制A的时候,函数里对应的控制引脚变为A,想B的时候变成B,想C变成C!  但是这些sbit的引脚又不能作为参数传进去啊!  但是难不成必须写四个函数?
作者: xianfajushi    时间: 2021-11-11 10:56
sbit A,B,C,D具体是什么?
作者: xianfajushi    时间: 2021-11-11 11:04
https://blog.csdn.net/xianfajushi/article/details/80553964

作者: 名字不是重点    时间: 2021-11-11 11:18
void motor_run(u8 id, bit dir)
{
  switch (id)
{
  case 0:
  //
  //
  break;
  ....

}
}
作者: wyqf    时间: 2021-11-11 11:26
题主描述不清,一个电机需要几个引脚控制?分别是什么状态?例如电机A由1、2两个引脚控制,1为高电平2为低电平则正转,1为低电平2为高电平则反转,12电平相等则不动。题主的电机的控制方式是什么?麻烦描述清楚
作者: 188610329    时间: 2021-11-11 12:59
人不能太懒……
先把不通用的函数,分别写出来,看看有没有共同点,然后考虑整合成通用,或者半通用函数,很多时候由于逻辑不同,强行整合成“通用”函数,不光效率下降,很可能代码量也会增大,这其实除了看上去似乎NB一点,实际应用上其实是得不偿失的。
作者: wojiaoguogai    时间: 2021-11-11 13:51
4个一样的结构体,这个结构体里面引脚不一样,然后函数的入口传的是结构体
作者: macboa    时间: 2021-11-14 20:24
谢谢大家 用了swtich case 解决了!!!
作者: jiajuntao    时间: 2021-11-14 20:47
用宏定义也可以,写好一个电机程序,引入变量,这个变量就是I/O口,通过不同变量,引用子函数就可以了。
作者: TTQ001    时间: 2021-11-15 01:44
编写一个具有通用输入和输出的函数。 控制是通用的。 调用控件时,分别使用A、B、C、D作为函数的输入,将输出传递给对应的设备。
作者: qinlu123    时间: 2021-11-15 09:04
就像11楼所说的使用函数指针,楼主有功能封装的想法是非常好的




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1