21 #ifndef _AVRIO_DS1621_H_ 22 #define _AVRIO_DS1621_H_ 24 #include <avrio/twi.h> 39 #define DS1621_BASE 0x90 40 #define DS1621_TEMP_ERROR -32768 56 #if defined(__DOXYGEN__) 217 #define DS1621_RDTEMP 0xAA 218 #define DS1621_RWTH 0xA1 219 #define DS1621_RWTL 0xA2 220 #define DS1621_RWCONF 0xAC 221 #define DS1621_RDCNT 0xA8 222 #define DS1621_RDSLOP 0xA9 223 #define DS1621_STARTC 0xEE 224 #define DS1621_STOPC 0x22 235 int16_t iDs1621ReadTemp (
xTwiDeviceAddr xDeviceAddr, uint8_t ucCmd);
236 int16_t iDs1621ReadRawTemp (
xTwiDeviceAddr xDeviceAddr, uint8_t ucCmd);
237 void vDs1621WriteTemp (
xTwiDeviceAddr xDeviceAddr, uint8_t ucCmd, int16_t iTemp);
238 uint8_t ucDs1621ReadByte(
xTwiDeviceAddr xDeviceAddr, uint8_t ucCmd);
249 return ucDs1621ReadByte(xDeviceAddr, DS1621_RWCONF);
270 vDs1621SendCmd (xDeviceAddr, DS1621_STARTC);
277 vDs1621SendCmd (xDeviceAddr, DS1621_STOPC);
284 return iDs1621ReadTemp(xDeviceAddr, DS1621_RDTEMP);
291 return iDs1621ReadTemp(xDeviceAddr, DS1621_RWTH);
298 return iDs1621ReadTemp(xDeviceAddr, DS1621_RWTL);
305 return iDs1621ReadRawTemp(xDeviceAddr, DS1621_RDTEMP);
312 return iDs1621ReadRawTemp(xDeviceAddr, DS1621_RWTH);
319 return iDs1621ReadRawTemp(xDeviceAddr, DS1621_RWTL);
326 return ucDs1621ReadByte(xDeviceAddr, DS1621_RDCNT);
333 return ucDs1621ReadByte(xDeviceAddr, DS1621_RDSLOP);
340 return eDs1621LastErrorValue;
int16_t iDs1621Th(xTwiDeviceAddr xDeviceAddr)
Lire le registre de seuil haut.
eTwiStatus eDs1621LastError(void)
Lecture de la dernière erreur.
bool xDs1621MemIsBusy(xTwiDeviceAddr xDeviceAddr)
Indique si l'écriture dans les registres TH/TL est possible.
uint8_t ucDs1621Counter(xTwiDeviceAddr xDeviceAddr)
Lire le registre compteur Fonction utile si une grande précision de mesure est nécessaire. cf la page 4 du datasheet du DS1621 (version 090905).
void vDs1621ClrFlags(xTwiDeviceAddr xDeviceAddr, uint8_t ucFlags)
Remise à zéro des drapeaux THF et/ou TLF.
void vDs1621Init(xTwiDeviceAddr xDeviceAddr, uint8_t ucConfig)
Initialise le circuit DS1621 et démarre la conversion.
int16_t iDs1621Temp(xTwiDeviceAddr xDeviceAddr)
Lecture de la dernière température mesurée.
int16_t iDs1621RawTl(xTwiDeviceAddr xDeviceAddr)
Lire le registre de seuil bas.
uint8_t ucDs1621Status(xTwiDeviceAddr xDeviceAddr)
Lecture du registre d'état et de configuration (AC).
eTwiStatus
Codes d'erreur et d'état.
int16_t iDs1621Tl(xTwiDeviceAddr xDeviceAddr)
Lire le registre de seuil bas.
void vDs1621SetTl(xTwiDeviceAddr xDeviceAddr, int16_t iTl)
Ecrire dans le registre de seuil bas Cette fonction est protégée avec xDs1621MemIsBusy() ...
bool xDs1621IsDone(xTwiDeviceAddr xDeviceAddr)
Indique si la conversion est terminée.
int16_t iDs1621RawTh(xTwiDeviceAddr xDeviceAddr)
Lire le registre de seuil haut.
uint8_t ucDs1621Slope(xTwiDeviceAddr xDeviceAddr)
Lire le registre de pente Fonction utile si une grande précision de mesure est nécessaire. cf la page 4 du datasheet du DS1621 (version 090905).
double dDs1621HiResTemp(xTwiDeviceAddr xDeviceAddr)
Lecture de la dernière température mesurée (haute résolution)
void vDs1621Start(xTwiDeviceAddr xDeviceAddr)
Démarrer la conversion En mode 1SHOT, le circuit retourne en mode sommeil à l'issue de la conversion...
#define _BV(n)
Renvoie un masque avec le bit de rang n à 1.
void vDs1621SetTh(xTwiDeviceAddr xDeviceAddr, int16_t iTh)
Ecrire dans le registre de seuil haut Cette fonction est protégée avec xDs1621MemIsBusy() ...
int16_t iDs1621RawTemp(xTwiDeviceAddr xDeviceAddr)
Lecture de la dernière température mesurée.
void vDs1621Stop(xTwiDeviceAddr xDeviceAddr)
Arrêter la conversion La conversion en cours se termine avant l'arrêt. Cette fonction n'est donc util...
uint8_t xTwiDeviceAddr
Adresse d'un circuit sur le bus I2C.