请选择 进入手机版 | 继续访问电脑版
查看: 157|回复: 2

[原创] [LPC1768]PCA9551驱动的编写

[复制链接]
  • TA的每日心情
    开心
    7 小时前
  • 签到天数: 176 天

    [LV.7]常住居民III

    16

    主题

    430

    帖子

    12

    金豆

    高级会员

    Rank: 4

    积分
    938
    最后登录
    2019-6-24
    发表于 2019-3-25 22:27:31 | 显示全部楼层 |阅读模式
    [LPC1768]PCA9551驱动的编写
        这个小芯片的作用还是蛮大的,给我们平时用于状态显示的指示灯提供了一个非常便捷的应用方案——可以完美节省一个MCU的一个timer。
        在开发板上面提供了4个LED的输出功能,4个按键输入功能。我们在此项目里面仅使用LED灯的输出功能,暂时不使用按键输入功能。因为其按键功能只能使用扫描的方式,而扫描会频繁占用I2C总线,并不方便我们同时操作总线上面的其它I2C器件。对于LED显示输出功能我们也使用带有占空比的PWM方式驱动LED灯,将其由直流驱动升级为交流驱动有利于功耗的降低与延长LED的寿命。
        在此背景下,我们构造以下接口,提供给应用层程序使用:
    1. int_8 setLEDConfig(PCA9551Class *pDev, uint_8 cmd, uint32_t arg);

    2. #define REG_INPUT                (0x00)
    3. #define REG_PSC0                        (0x01)
    4. #define REG_PWM0                        (0x02)
    5. #define REG_PSC1                        (0x03)
    6. #define REG_PWM1                        (0x04)
    7. #define REG_LS0                        (0x05)
    8. #define REG_LS1                        (0x06)

    9. #define CMD_CONFIG                                (0x00)
    10. #define CMD_OUTPUT                                (0x01)
    11. #define CMD_INPUT                                (0x02)
    复制代码


        有了调试好的I2C底层程序再编写上层应用程序时就方便多了。我们只需要编写对应的发送内容即可。
        记住,我们仅使用这4个LED灯做为指示灯,因此,我们避免了频繁刷新而带来的I2C总线的占用。
        TO BE CONTINUED.


    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    8 小时前
  • 签到天数: 210 天

    [LV.7]常住居民III

    48

    主题

    2739

    帖子

    63

    金豆

    超级版主

    Rank: 8Rank: 8

    积分
    14393
    最后登录
    2019-6-24
    发表于 2019-3-27 15:09:05 | 显示全部楼层
    I2C也可以使用中断的,所以按键采用中断方式也是可行的,当然polling方式简单粗暴,哈哈
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2019-5-1 06:15
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    0

    主题

    91

    帖子

    0

    金豆

    中级会员

    Rank: 3Rank: 3

    积分
    201
    最后登录
    2019-5-1
    发表于 2019-4-30 10:32:23 | 显示全部楼层
    谢谢分享
    开心!!!
    回复

    使用道具 举报

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

    本版积分规则

    小黑屋|手机版|Archiver|恩智浦技术社区

    GMT+8, 2019-6-24 16:51 , Processed in 0.364810 second(s), 16 queries , MemCache On.

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

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