控制Windows Mobile的LED之四:多色呼吸LED SN3199的驱动
2011-02-11 23:41
525 查看
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);
芯片采用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);
相关文章推荐
- 控制Windows Mobile的LED之四:多色呼吸LED SN3199的驱动
- 控制Windows Mobile的LED之三:SN3101芯片驱动(内核和BOOTLOADER)
- WINCE 定时器0控制LED驱动源码
- 51单片机做的74HC595驱动控制LED
- 使用TIM3定时输出PWM控制LED灯实现呼吸灯
- 树莓派linux驱动学习之LED控制
- Android应用控制LED(动态编译LED驱动)
- JavaScript控制MCS-51的I/O -- 驱动LED键盘控制IC-FD620K1.
- linux驱动按键控制led灯
- 在platform总线上注册设备并载入驱动控制led灯
- 控制Windows Mobile的LED 之一:基础函数
- 树莓派linux驱动学习之LED控制
- mini2440 按键控制LED 驱动
- arm 驱动基础:通过次设备号精确控制led亮灭
- 字符设备驱动控制led灯
- 控制Windows Mobile的LED 之二:控制三个LED指示灯
- 4412驱动-fifth_fasyn 控制led 蜂鸣器 按键
- Android驱动入门-Led控制+app+ndk库+底层驱动
- 从ARM裸机看驱动之按键中断方式控制LED(二)
- 4412用户层调用驱动控制led灯