Subversion Repositories HomeAutomation

Rev

Rev 1540 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | SVN | RSS feed

  1. #ifndef SNS_INPUTANALOG
  2. #define SNS_INPUTANALOG
  3.  
  4. /*-----------------------------------------------------------------------------
  5.  * Includes
  6.  *---------------------------------------------------------------------------*/
  7. /* system files */
  8. #include <avr/io.h>
  9. #include <avr/interrupt.h>
  10. #include <stdio.h>
  11. /* lib files */
  12. #include <config.h>
  13. #include <bios.h>
  14. #include <drivers/can/stdcan.h>
  15. #include <drivers/timer/timer.h>
  16. #include <drivers/mcu/gpio.h>
  17. #include <drivers/adc/adc.h>
  18. #include <drivers/io/PCA95xx.h>
  19.  
  20. //to use PCINT lib. uncomment the line below
  21. //#include <drivers/mcu/pcint.h>
  22.  
  23. void sns_inputAnalog_Init(void);
  24. void sns_inputAnalog_Process(void);
  25. void sns_inputAnalog_HandleMessage(StdCan_Msg_t *rxMsg);
  26. void sns_inputAnalog_List(uint8_t ModuleSequenceNumber);
  27.  
  28. struct sns_inputAnalog_Config{
  29.     uint16_t            LowTh;          //Config, low level threshold voltage
  30.     uint16_t            HighTh;         //Config, high level threshold voltage
  31.     uint16_t            Periodicity;    //Config, periodicity
  32.     uint8_t             Type;           //Config, if sensor is of type periodic or digital input
  33.     uint8_t             PullupEnable;   //Config, if the pullup should be enabled
  34.     uint8_t             RefEnable;      //Config, if the reference to GND should be enabled
  35. } sns_inputAnalog_Config[sns_inputAnalog_NUM_SUPPORTED];
  36.  
  37. #ifdef sns_inputAnalog_USEEEPROM
  38.     struct sns_inputAnalog_Data{
  39.         struct sns_inputAnalog_Config Config0;
  40. #if sns_inputAnalog_NUM_SUPPORTED>=2
  41.         struct sns_inputAnalog_Config Config1;
  42. #endif
  43. #if sns_inputAnalog_NUM_SUPPORTED>=3
  44.         struct sns_inputAnalog_Config Config2;
  45. #endif
  46. #if sns_inputAnalog_NUM_SUPPORTED>=4
  47.         struct sns_inputAnalog_Config Config3;
  48. #endif
  49.     }; 
  50. #endif
  51.  
  52. #define TRUE 1
  53. #define FALSE 0
  54.  
  55. #define MAX(a,b) ((a)>(b) ? (a) : (b))
  56. #define MIN(a,b) ((a)<(b) ? (a) : (b))
  57.  
  58. #if sns_inputAnalog0PullupPCA95xx==1 | sns_inputAnalog1PullupPCA95xx==1 | sns_inputAnalog2PullupPCA95xx==1 | sns_inputAnalog3PullupPCA95xx==1 | sns_inputAnalog0RefPCA95xx==1 | sns_inputAnalog1RefPCA95xx==1 | sns_inputAnalog2RefPCA95xx==1 | sns_inputAnalog3RefPCA95xx==1
  59. #define sns_inputAnalog_ENABLE_PCA95xx 1
  60. #else
  61. #define sns_inputAnalog_ENABLE_PCA95xx 0
  62. #endif
  63.  
  64.  
  65. #endif // SNS_INPUTANALOG
  66.