普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 4533|回复: 1

请问大神,sbit不能做为函数的参数传递吗?

[复制链接]

1

主题

5

帖子

24

积分

新手上路

Rank: 1

积分
24
发表于 2019-9-27 07:11:39 | 显示全部楼层 |阅读模式
我的代码是这样的。
  1. typedef unsigned int u16;
  2. typedef unsigned char u8;

  3. sbit k1=P1^0;
  4. sbit k2=P1^1;
  5. sbit k3=P1^2;
  6. sbit k4=P1^3;
  7. sbit k5=P1^4;
  8. sbit k6=P1^5;
  9. sbit k7=P1^6;
  10. sbit k8=P1^7;

  11. sbit led1=P0^0;
  12. sbit led2=P0^1;
  13. sbit led3=P0^2;
  14. sbit led4=P0^3;
  15. sbit led5=P0^4;
  16. sbit led6=P0^5;
  17. sbit led7=P0^6;
  18. sbit led8=P0^7;

  19. void delay(u16 i)
  20. {
  21.         while(i--);
  22. }

  23. void keypros(sbit k,sbit led)
  24. {
  25.         if(k==0)
  26.         {
  27.                 delay(1000);
  28.                 if(k==0)
  29.                 {
  30.                         led=~led;
  31.                 }
  32.                 while(!k);
  33.         }
  34. }

  35. void keypress()
  36. {
  37.         keypros(k1,led1);
  38.         keypros(k2,led2);
  39.         keypros(k3,led3);
  40.         keypros(k4,led4);
  41.         keypros(k5,led5);
  42.         keypros(k6,led6);
  43.         keypros(k7,led7);
  44.         keypros(k8,led8);
  45. }
复制代码

提示k变量没有定义
回复

使用道具 举报

0

主题

66

帖子

246

积分

中级会员

Rank: 3Rank: 3

积分
246
发表于 2019-9-27 07:52:45 | 显示全部楼层
应该不能吧,sfr、sbit这种特殊的变量只能是全局。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-4-23 15:02 , Processed in 0.088726 second(s), 30 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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