zhangmangui 发表于 2013-9-25 10:55 
用了csl库 你找一下DM642的csl库使用说明书
然后不懂的函数粘贴查找 看看有详细的说明
其实都是通过 ...
addrI2C = 0xBA >>1;
_IIC_write(hSeeddm642i2c, addrI2C,0x00, input_sel);
_IIC_write(hSeeddm642i2c, addrI2C,0x03, misc_ctrl);
_IIC_write(hSeeddm642i2c, addrI2C,0x0D, output_format);
_IIC_write(hSeeddm642i2c, addrI2C,0x0F, pin_cfg);
_IIC_write(hSeeddm642i2c, addrI2C,0x1B, chro_ctrl_2);
=====================================================
Uint8 misc_ctrl = 0x6D;
Uint8 output_format = 0x47;
// 地址为0 forcvbs port1,选择复合信号做为输入
Uint8 input_sel = 0x00;
/*地址为0xf,将Pin27设置成为CAPEN功能*/
Uint8 pin_cfg = 0x02;
/*地址为1B*/
Uint8chro_ctrl_2 = 0x14;
======================================================
问题:
①对于TVP5150A来说,若I2CSEL=1,则该设备地址可以理解为0x1011101(7位寻址模式),而写操作时最后加一位bit0=0即0x10111010=0xBA,读操作时bit0=1即0x10111011=0xBB. XA为第8字段扩展地址使能位,当XA=0时为7位寻址模式且地址由I2CSAR的低7位确定,当XA=1时为10位寻址模式这时地址由I2CSAR的低10位确定。默认情况下XA=0,所以代码addI2C=0xBA>>1必须右移一位,不然不能正常寻址从设备。可是右移一位变为01011101,后7位改变,第一位变为1,不就成“读”了吗??
② _IIC_write(hSeeddm642i2c, addrI2C,0x00, input_sel);根据网友说的意思,是将0X00写入地址为0X00的寄存器,而设置input_sel=0x00前备注了// 地址为0 forcvbs port1,选择复合信号做为输入,请问怎么理解这句话呢?0X00的寄存器我不知道是什么,看书也没有头绪,请问怎么查找呢?
|