TempSensorSpi.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. // ----------------------------------------------------------------------------
  2. // TEempSensorSpi.h -
  3. // ----------------------------------------------------------------------------
  4. // Beschreibung: Temperatur-Sensor (TMP121) mit SPI-IF
  5. // HW: BMS-Master, IPE 362-02-02R0
  6. // Revision: 27. Juni 2012, neu Maurer, IPE
  7. // ----------------------------------------------------------------------------
  8. #ifndef _TEMPSENS_H_
  9. #define _TEMPSENS_H_
  10. typedef struct {
  11. enum {Idle=0,Read_1,Read_2} FsmState;
  12. enum {No_Task,Read} TaskTrigger; // NoTask to No_Task
  13. int16_t value;
  14. uint8_t num_data;
  15. uint8_t i_databyte;
  16. uint8_t valueIsNew;
  17. union {
  18. uint8_t R;
  19. struct {
  20. uint8_t FSM_TO:1;
  21. uint8_t rsvd:6;
  22. } B;
  23. } Flags;
  24. } TempMessStatus_t;
  25. //Datentyp zum speichern des Status des Moduls
  26. // API
  27. extern void TempMess_init (void);
  28. //Aufruf der SPI-Config und Initialisierung des Status-Structs
  29. extern void TempMess_update(void);
  30. //ruft FSM_update() auf. Der Aufruf muss getaktet sein (1ms), damit der
  31. //Fsm-TimeOut funktioniert.
  32. extern int8_t TempMess_poll_Value(int16_t *target);
  33. //Ueberprueft, ob ein neuer Messwert zur Verfuegung steht und schreibt ihn
  34. //in *target. Der 12-bit-Wert des Sensors wird auf 8-bit "abgeschnitten"
  35. //-> Aufloesung = 1°, Messbereich: -55°..+150°
  36. //return -1 , wenn kein neuer Wert vorhanden ist
  37. //return 0 , wenn ein neuer Wert geschrieben wurde
  38. extern int8_t TempMess_triggerRead(void);
  39. //Trigger, zum Starten einer Wandlung
  40. #endif /* ifndef*/