关于写51单片机库的问题

smalkang 2019-07-31 03:24:02
打算仿照别人的单片机库写一个自己的51单片机库,但sbit这种类型的怎么做形参,网上看的又说的将值赋给int型的变量就行,但怎么也都不成功,有大佬知道怎么解决吗?
...全文
225 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
forget345 2019-08-08
  • 打赏
  • 举报
回复
你要的是改变P1.1的状态,用全局的 sbit p=P1.1是可以的。另外不要取p这种变量名
P1.1本来就是全局的,头文件里有 sbit P11 = P1^1; 你直接拿 P11来用就好了。

smalkang 2019-08-03
  • 打赏
  • 举报
回复
还是不行
forget345 2019-08-03
  • 打赏
  • 举报
回复
引用 6 楼 smalkang 的回复:
[quote=引用 5 楼 forget345的回复:][quote=引用 4 楼 smalkang 的回复:]
[quote=引用 1 楼 forget345的回复:] 可以尝试用 bit 做形参类型

bit只能一位,能详细说说怎么操作吗?[/quote]
你先写出你要做成什么样子吧,sbit 本来就是位,bit只能一位有什么问题?
在我印象中,只有引脚位和 bdata 变量里的位有用到 sbit,这不都是一个位吗?[/quote]
写一个子函数
void led(sbit p)
{}
调用时候直接
sbit P=P0^0;
led(P);[/quote]

sbit P=P0^0; 这种写法只能在 函数外,也就是全局变量,如果是局部变量,应该这样写: bit P=P0^0;
子函数这样写就可以了
void led(bit p)
{}
smalkang 2019-08-02
  • 打赏
  • 举报
回复
引用 1 楼 forget345的回复:
可以尝试用 bit 做形参类型
bit只能一位,能详细说说怎么操作吗?
  • 打赏
  • 举报
回复
就是写个.h文件,有2种方式,1直接在h文件写所有代码,我喜欢这种方式,2关联c文件在c文件中写所有代码。
smalkang 2019-08-02
  • 打赏
  • 举报
回复
引用 5 楼 forget345的回复:
[quote=引用 4 楼 smalkang 的回复:]
[quote=引用 1 楼 forget345的回复:] 可以尝试用 bit 做形参类型

bit只能一位,能详细说说怎么操作吗?[/quote]
你先写出你要做成什么样子吧,sbit 本来就是位,bit只能一位有什么问题?
在我印象中,只有引脚位和 bdata 变量里的位有用到 sbit,这不都是一个位吗?[/quote] 写一个子函数 void led(sbit p) {} 调用时候直接 sbit P=P0^0; led(P);
forget345 2019-08-02
  • 打赏
  • 举报
回复
引用 4 楼 smalkang 的回复:
[quote=引用 1 楼 forget345的回复:] 可以尝试用 bit 做形参类型

bit只能一位,能详细说说怎么操作吗?[/quote]
你先写出你要做成什么样子吧,sbit 本来就是位,bit只能一位有什么问题?
在我印象中,只有引脚位和 bdata 变量里的位有用到 sbit,这不都是一个位吗?
smalkang 2019-07-31
  • 打赏
  • 举报
回复
刚接触不是很理解,你们把关键位置的代码发一下吗
forget345 2019-07-31
  • 打赏
  • 举报
回复
可以尝试用 bit 做形参类型

27,373

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧