一点五编程(三)——总结与总体构建流程

一点五编程 硬件平台实现

在硬件实现层io_led.h中添加device结构体 用于平台层接口

typedef int (*io_led_write_pin_fn_t)(void *self,char io_level);
typedef int (*io_led_read_pin_fn_t)(void *self);
struct io_led_i
{
   
    io_led_write_pin_fn_t io_led_write_pin;
    io_led_read_pin_fn_t io_led_read_pin;
};
例如io_led中添加io_led_i结构体 lsd中添加lsd_i结构体 iic_led中添加iic_led_i结构体
结构体内是对应的硬件操作 如io_led_i中进行io口电平设置
iic_led_i中进行iic_writeh_byte和iic_read_byte操作
创建好之后 将其添加进硬件实现结构体中
struct io_led
{
   
    struct light_i* interface;
    struct io_led_i** device;
    int status;
    const char *name;
};

创建后进行封装

static inline int io_led_write_pin(void *self,char io_level)
{
   
    return (*(struct io_led_i **)self)->io_led_write_pin(self, io_level);
}

static inline int io_led_read_pin(void *self)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

注意沈题!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值