// PIC18 in C - Versione 0.99 - Luglio 2019 // Copyright (c) 2019, Vincenzo Villa // Creative Commons | Attribuzione - Condividi allo stesso modo 4.0 Internazionale (CC BY-SA 4.0) // Creative Commons | Attribution-Share Alike 4.0 Unported // https://www.vincenzov.net/tutorial/PIC18/i2c-mcc-k42.htm // PIC18F2xK42 / MPLAB X 5.20 / XC8 2.05 / MCC 3.85.1 // LM75A I2C temperature sensor #ifndef LM75A_H #define LM75A_H #include // LM75A I2C temperature sensor - See data-sheet and schematic #define LM75A_ADDR 0x48 // Address (A0 A1 A2 = 000) #define LM75A_TEMP 0x00 // Temperature register #define LM75A_CONF 0x01 // Configuration register #define LM75_SHUTDOWN 0x01 // Code to selle LM75A #define LM75_NORMAL 0x00 // COde to wakeup LM75A typedef union { // Hold temperature as read from LM75A... uint16_t u; // ... as 2 unsigned byte (2 byte fron i2c) int16_t i; // ... as 2' complements (temperature value - See LM75A datasheet } temperature_t; float ReadTemperatureLM75Af(void); // Read temperature from LM75A int ReadTemperatureLM75A(void); // Read temperature*100 from LM75A as integer (20,5 °C -> 2050) void PowerUpLM75(void); // Power on LM75. require up to 300 ms for first measurement void PowerDownLM75(void); // Sleep LM75 #endif // LM75A_H