| 数据搜索系统,热门电子元器件搜索 |
|
AS89010 数据表(PDF) 36 Page - ams-OSRAM AG |
|
|
|||||||||||||||||||||||||||||
AS89010 数据表(HTML) 36 Page - ams-OSRAM AG |
|
36 / 43 page ![]() ams.com db12348e_V3.11_preliminary_2017-07-06 Page 34 of 41 AS89010 V3.11 The following pseudo code illustrates the procedures for principle program steps for functions I2C-Write and I2C-Read. BOOL I2cMasterSendData(BYTE I2cAddr, USHORT RegAddr, BYTE *Data, SHORT Datasize) { BOOL ErrReturn = (Datasize > 0) ? TRUE : FALSE; BYTE ErrCode=0; ULONG WaitLoop; // clear RX I2C_ReceiveData(I2C_INTERFACE); // Datasize must be greater 0 while(ErrReturn==TRUE) { // send I2C START I2C_GenerateSTART(I2C_INTERFACE, ENABLE); // test for completion if(I2cWaitEvent(I2C_EVENT_MASTER_MODE_SELECT) == FALSE) { ErrCode = 0x81; ErrReturn = FALSE; break; } // send I2C slave address (R/W=Write) I2C_Send7bitAddress(I2C_INTERFACE, I2cAddr, I2C_Direction_Transmitter); // test for completion, TXE, master mode activ, TRA if(I2cWaitEvent(I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED) == FALSE) { ErrCode = 0x82; ErrReturn = FALSE; break; } // send register adress I2C_SendData(I2C_INTERFACE, RegAddr)); // data transmission loop while(Datasize--) { // wait for BTF if(I2cWaitEvent(I2C_EVT_BTF) == FALSE) { ErrCode = 0x84; ErrReturn = FALSE; break; } // send data byte I2C_SendData(I2C_INTERFACE, *Data); // prepare next Data++; |
|
链接网址 |
| ALLDATASHEET是否为您带来帮助? [ DONATE ] |
关于 Alldatasheet | 广告服务 | 联系我们 | 隐私政策 | 数据表链接 | 链接交换 | 制造商名单 All Rights Reserved©Alldatasheet.com |
| Russian : Alldatasheetru.com | Korean : Alldatasheet.co.kr | Spanish : Alldatasheet.es | French : Alldatasheet.fr | Italian : Alldatasheetit.com Portuguese : Alldatasheetpt.com | Polish : Alldatasheet.pl | Vietnamese : Alldatasheet.vn Indian : Alldatasheet.in | Mexican : Alldatasheet.com.mx | British : Alldatasheet.co.uk | New Zealand : Alldatasheet.co.nz |
|
Family Site : ic2ic.com |
icmetro.com |