打印
[51单片机]

控制多个HC-SR04超声波模块遇到的问题

[复制链接]
1926|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
亲亻尔嘴|  楼主 | 2014-1-20 10:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在控制HC-SR04的时候是有控制信号,然后等待返回信号。

问题是:我现在一片单片机控制多个HC-SR04模块,每个模块的控制引脚是接在不同的I/O口上,就要写多个启动子函数,能不能把这几个子函数写成一个函数进行调用,这几个子函数间只有I/O口的调用不同,其他一样。
就是以下子函数,能不能写成一个子函数方便调用。
sbit TRIG_1 = P1^0;
sbit TRIG_2 = P1^1;
void start_1( void )
{
    TRIG_1 = 1;
    delay_10us();
    TRIG_1 = 0;
}

void start_2( void )
{
    TRIG_2 = 1;
    delay_10us();
    TRIG_2 = 0;
}

相关帖子

沙发
亲亻尔嘴|  楼主 | 2014-1-20 10:35 | 只看该作者
我的想法是:能不能通过函数传递I/O口地址来进行优化。但是我没这样编过,不知道该怎么写函数形参

使用特权

评论回复
板凳
leehp| | 2014-1-20 11:10 | 只看该作者
可以啊,先移位,然后再向P1口写入相应的数据就可以了。

使用特权

评论回复
地板
亲亻尔嘴|  楼主 | 2014-1-20 11:35 | 只看该作者
leehp 发表于 2014-1-20 11:10
可以啊,先移位,然后再向P1口写入相应的数据就可以了。

移位的意思是??

使用特权

评论回复
5
leehp| | 2014-1-20 22:57 | 只看该作者
你在子函数里定义一个变量Temp,赋值“00000001”,你的子函数接收变量n,把Temp左移n-1位,然后写到P1口里面就行了。

使用特权

评论回复
6
亲亻尔嘴|  楼主 | 2014-1-21 10:00 | 只看该作者
leehp 发表于 2014-1-20 22:57
你在子函数里定义一个变量Temp,赋值“00000001”,你的子函数接收变量n,把Temp左移n-1位,然后写到P1口里 ...

哦哦,明白了,谢谢了~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

46

帖子

0

粉丝