| поискавой системы для электроныых деталей |
|
TSL2583 датащи(PDF) 23 Page - ams AG |
|
|
|||||||||||||||||||||||||||||
TSL2583 датащи(HTML) 23 Page - ams AG |
|
23 / 33 page ![]() TSL2581, TSL2583 LIGHT-TO-DIGITAL CONVERTER TAOS134A − JULY 2012 22 r r Copyright E 2012, TAOS Inc. The LUMENOLOGY r Company www.taosinc.com // lux equation approximation without floating point calculations ////////////////////////////////////////////////////////////////////////////// // Routine: unsigned int CalculateLux(unsigned int ch0, unsigned int ch0, int iType) // // Description: Calculate the approximate illuminance (lux) given the raw // channel values of the TSL2583. The equation if implemented // as a piece−wise linear approximation. // // Arguments: unsigned int iGain − gain, where 0:1X, 1:8X, 2:16X, 3:128X // unsigned int tIntCycles − INTEG_CYCLES defined in Timing Register // unsigned int ch0 − raw channel value from channel 0 of TSL2583 // unsigned int ch1 − raw channel value from channel 1 of TSL2583 // unsigned int iType − package type (1:CS) // // Return: unsigned int − the approximate illuminance (lux) // ////////////////////////////////////////////////////////////////////////////// unsigned int CalculateLux(unsigned int iGain, unsigned int tIntCycles, unsigned int ch0, unsigned int ch1, int iType) { //−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− // first, scale the channel values depending on the gain and integration time // 1X, 400ms is nominal setting unsigned long chScale0; unsigned long chScale1; unsigned long channel1; unsigned long channel0; // No scaling if nominal integration (148 cycles or 400 ms) is used if (tIntCycles == NOM_INTEG_CYCLE) chScale0 = (1 << CH_SCALE); else chScale0 = (NOM_INTEG_CYCLE << CH_SCALE) / tIntCycles; switch (iGain) { case 0: // 1x gain chScale1 = chScale0; // No scale. Nominal setting break; case 1: // 8x gain chScale0 = chScale0 >> 3; // Scale/multiply value by 1/8 chScale1 = chScale0; break; case 2: // 16x gain chScale0 = chScale0 >> 4; // Scale/multiply value by 1/16 chScale1 = chScale0; break; case 3: // 128x gain chScale1 = chScale0 / CH1GAIN128X; //Ch1 gain correction factor applied chScale0 = chScale0 / CH0GAIN128X; //Ch0 gain correction factor applied break; } // scale the channel values channel0 = (ch0 * chScale0) >> CH_SCALE; channel1 = (ch1 * chScale1) >> CH_SCALE; //−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− // find the ratio of the channel values (Channel1/Channel0) // protect against divide by zero |
|
ссылки URL |
| Вашему бизинису помогли Аллдатащит? [ DONATE ] |
Что такое Аллдатащит | реклама | контакт | Конфиденциальность | Ссылка на техническое описание | обмен ссыками | поиск по производителю 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 |