weixin_50697999 2021-11-10 23:50 采纳率: 73.7%
浏览 18
已结题

同一功能的函数针对不同对象,如何实现啊!

有4个电机A,B,C,D!
设定sbit A,B,C,D四个引脚
想写一个通用的函数,用于调速。
设定一个形参,调用函数的时候,把想要调速的电机传进来。要怎么弄啊!

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

  • 写回答

2条回答 默认 最新

  • 老皮芽子 2021-11-11 10:14
    关注
    
    //c51 中 sbit 不能在函数中传递参数。C51 也没有 bit 指针。
    void control(sbit x) //这样肯定是不行的
    void control(sbit *x) //这样肯定是不行的
    
    
    //不过可以先做个 IO 的驱动
    比如2个电机,每个电机 2 个 IO 
    sbit A0 = P1^0;    //电机0
    sbit B0 = P1^1;    //电机0
    sbit A1 = P1^2;    //电机1
    sbit B1 = P1^3;    //电机1
    
    void set_ioa(char moto,bit var)
    {
        if(moto == 0)
            A0 = var;
        if(moto == 1)
            A1 = var;
    }
    
    void set_iob(char moto,bit var)
    {
        if(moto == 0)
            B0 = var;
        if(moto == 1)
            B1 = var;
    }
    
    void control(char moto,char speed)
    {
        set_ioa(moto,0);
        set_iob(moto,1);
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月19日
  • 已采纳回答 11月11日
  • 创建了问题 11月10日

悬赏问题

  • ¥15 vue3+element-plus页面崩溃
  • ¥15 像这种代码要怎么跑起来?
  • ¥15 怎么改成循环输入删除(语言-c语言)
  • ¥15 安卓C读取/dev/fastpipe屏幕像素数据
  • ¥15 pyqt5tools安装失败
  • ¥15 mmdetection
  • ¥15 nginx代理报502的错误
  • ¥100 当AWR1843发送完设置的固定帧后,如何使其再发送第一次的帧
  • ¥15 图示五个参数的模型校正是用什么方法做出来的。如何建立其他模型
  • ¥100 描述一下元器件的基本功能,pcba板的基本原理