找回密码
 立即注册
查看: 1476|回复: 4

请问大家是如何对不同引脚复用相同的方法过程?

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2026-05-23 08:15:54

3

主题

2

回帖

85

积分

注册会员

积分
85
发表于 2024-8-10 09:37:11 | 显示全部楼层 |阅读模式
c51不支持数组定义sbit, 所以对不同引脚调用同一过程难道我要写多个过程
这下面是举例是不行,编译不了
#define NUM_CS5530 2 // 定义CS5530芯片的数量

sbit cs5530_clk[NUM_CS5530] = {P0^5, P1^5}; // 定义多片CS5530的clk引脚
sbit cs5530_cs[NUM_CS5530] = {P0^6, P1^6}; // 定义多片CS5530的cs引脚
sbit cs5530_sdi[NUM_CS5530] = {P0^7, P1^7}; // 定义多片CS5530的sdi引脚
sbit cs5530_sdo[NUM_CS5530] = {P0^4, P1^4}; // 定义多片CS5530的sdo引脚


u8 cs5530_read(u8 chipIndex)
{   u8 ad_number;
    cs5530_cs[chipIndex]=0;
...
    cs5530_cs[chipIndex]=1;

   return ad_number;
}

这个是怎么写比较好比较优雅

回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:727
  • 最近打卡:2026-06-26 17:48:25
已绑定手机

95

主题

7373

回帖

1万

积分

超级版主

积分
13944
发表于 2024-8-10 10:16:14 | 显示全部楼层
sbit只能是SFR的
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:850
  • 最近打卡:2026-07-06 00:18:17
已绑定手机

19

主题

3440

回帖

7460

积分

论坛元老

积分
7460
发表于 2024-8-10 10:59:09 | 显示全部楼层
sbit定义数组不可能吧
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:371
  • 最近打卡:2026-01-27 06:46:46

60

主题

830

回帖

1823

积分

金牌会员

积分
1823
发表于 2024-8-10 11:39:43 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:739
  • 最近打卡:2026-07-06 00:22:37

0

主题

342

回帖

770

积分

高级会员

积分
770
发表于 2024-8-10 11:58:30 | 显示全部楼层
就是,行不通就换一种方法,别跟编译器对着干,封装成函数不也是一样一样的
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-7-6 04:08 , Processed in 0.074024 second(s), 69 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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