c - 8051 Controller 端口位读/写

标签 c port bit 8051 sdcc

这个想法是从端口读取任何位。 无论如何,访问一个已知位很简单,例如

P0_0 <-- gets bit 0 from port 0

但是如果我需要通过函数访问位 y 呢?

read_bit(__bit y){
    return P0_y; // <-- just an idea but its not right becouse of syntax.
}

使用SDCC编程和8051头。

最佳答案

如果它是一个文字常量,您可以使用宏技巧:

#define READ_P0_BIT(BIT) (P0_ ## BIT)
unsigned x = READ_P0_BIT(1);

如果它不是文字常量,您可以这样做:

int readP0bit(int bitNo)
{
    switch (bitNo)
    {
    case 0: return P0_0;
    case 1: return P0_1;
    // ...
    case 7: return P0_7;
    default: return 0;
    }
}

关于c - 8051 Controller 端口位读/写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12722927/

相关文章:

swift - 创建二进制 header

c++ - 如何将结构从 C++ 应用程序传递到 C++ Win32 DLL?

c - 如何使用 Perl/其他东西搜索和替换 C 源代码中的特定代码行?

c - 尝试编写计算指定文件中字节数的程序(C语言)

python - 一行命令清除 8000 开放端口,杀死后台运行的 django 开发服务器

python - 在python中将字节转换为位

c - 使用 C 在 Linux shell 中实现输入/输出重定向

tcp - 如何抑制Windows防火墙的Windows安全警报?

apache-spark - 如何找到我的 Spark 的驱动程序节点?

matlab - Bitget 需要处理大量输入吗?