volatile bool g_bTMP100Done; tI2CMInstance sI2CInst; float fTemperature; tTMP100 sTMP100; /***** PROCEDURA OBSŁUGI PRZERWANIA OD I2C *****/ void myI2CInterruptHandler() { //.....uzupełnij } /***** FUNKCJA WYWOŁYWANA W PROCEDURZE OBSŁUG PRZERWANIA OD I2C (CALLBACK) *****/ void TMP100Callback(void *pvCallbackData, uint_fast8_t ui8Status) { if(ui8Status == I2CM_STATUS_SUCCESS) g_bTMP100Done = true; } /***** PROCEDURA INICJALIZACJI I ODCZYTU CZUJNIKA *****/ //Uwaga: przed wykonaniem poniższego kodu należy upewnić się że: //1. Został włączony odpowiedni moduł I2C funkcją SysCtlPeripheralEnable() //2. Moduł I2C został zainicjalizowany funkcją I2CMInit() g_bTMP100Done = false; TMP100Init(&sTMP100, &sI2CInst, 0x4a, TMP100Callback, 0); while(!g_bTMP100Done) { } g_bTMP100Done = false; TMP100ReadModifyWrite(&sTMP100, TMP100_O_CONFIG, ~TMP100_CONFIG_RES_M, TMP100_CONFIG_RES_12BIT, TMP100Callback, 0); while(!g_bTMP100Done) { } while(1) { g_bTMP100Done = false; TMP100DataRead(&sTMP100, TMP100Callback, 0); while(!g_bTMP100Done) { } TMP100DataTemperatureGetFloat(&sTMP100, &fTemperature); //... tutaj wyświetl temperaturę na ekranie LCD }