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

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

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-08-22 10:19:46

1

主题

0

回帖

55

积分

注册会员

积分
55
发表于 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;
}

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

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:468
  • 最近打卡:2025-06-16 07:06:57
已绑定手机

79

主题

5131

回帖

9138

积分

超级版主

DebugLab

积分
9138
发表于 2024-8-10 10:16:14 | 显示全部楼层
sbit只能是SFR的
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:467
  • 最近打卡:2025-06-15 22:44:24
已绑定手机

19

主题

3231

回帖

5281

积分

论坛元老

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:267
  • 最近打卡:2025-06-16 06:00:40

61

主题

830

回帖

1545

积分

金牌会员

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:422
  • 最近打卡:2025-06-16 00:53:18

0

主题

336

回帖

1628

积分

金牌会员

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

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-16 17:37 , Processed in 0.108957 second(s), 77 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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