控制Windows Mobile的LED之四:多色呼吸LED SN3199的驱动

      SN3199是一款多色呼吸的LED驱动控制芯片,用来支持我目前项目上的LED控制。因为项目需求在内核和BOOT LOADER中都需要闪烁,所以用这种One Shot控制的芯片是最有效最省资源的。

      芯片采用I2C控制方式,通讯时序如下:

以上是典型的读写方式,该芯片还支持地址自加模式,即只要往某地址写入了一系列数据,后续的数据会自动写入接连自加的地址中。时序图如下:

所以读写函数如下:

XLLP_STATUS_T Xllp3199WriteRegs(XLLP_I2C_T *i2cRegs, XLLP_OST_T *ostRegs,   XLLP_UINT8_T reg,

           XLLP_UINT8_T *val_buf,      XLLP_UINT8_T val_count)
{
             XLLP_STATUS_T status;
             XLLP_UINT8_T buf[0x28]={0x00};     //初始化内部数组,需要组合数据用,确定0x27个字节传入

             int lock,i;
          buf[0] = reg;                        //首字节是地址
         for( i=1; i<=val_count;i++)
           {
                       buf[i] = *(val_buf+i);        //保存写入数据
           }
          lock = ACQUIRE_LOCK();
          INTS_OFF();

         status = XllpI2CWrite(i2cRegs, ostRegs, sn3199_saddr, buf, val_count+1, 1);  //sn3199_saddr是七位地址
          INTS_ON();
          RELEASE_LOCK(lock);
         return status;
}

用法:Xllp3199WriteRegs(s_Device.m_pI2CCtrlReg,s_Device.m_pOSTimer,REG_00_SoftOn,sn3199_reg,0x27);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值