Subversion Repositories HomeAutomation

Rev

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

  1. #ifndef ACT_DIMMER230
  2. #define ACT_DIMMER230
  3.  
  4. /*-----------------------------------------------------------------------------
  5.  * Includes
  6.  *---------------------------------------------------------------------------*/
  7. /* system files */
  8. #include <avr/io.h>
  9. #include <avr/interrupt.h>
  10. #include <avr/pgmspace.h>
  11. #include <stdio.h>
  12. /* lib files */
  13. #include <config.h>
  14. #include <bios.h>
  15. #include <drivers/can/stdcan.h>
  16. #include <drivers/timer/timer.h>
  17. #include <drivers/mcu/gpio.h>
  18.  
  19. #define ACT_DIMMMER230_STATE_IDLE           0
  20. #define ACT_DIMMMER230_STATE_TIMER_ON       1
  21. #define ACT_DIMMMER230_STATE_xyz            2
  22.  
  23. #define ACT_DIMMMER230_DEMO_STATE_NOT_RUNNING   0
  24. #define ACT_DIMMMER230_DEMO_STATE_DECREASE      1
  25. #define ACT_DIMMMER230_DEMO_STATE_INCREASE      2
  26. #define ACT_DIMMMER230_DEMO_STATE_GOBACK        3
  27.  
  28. #define ACT_DIMMMER230_PERIOD_TIME          10000
  29.  
  30. #define ACT_DIMMMER230_MAX_DIM              255
  31. #define ACT_DIMMMER230_MIN_DIM              0
  32.  
  33. #define ACT_DIMMMER230_50HZ_PERIOD_TIME     10000
  34. #define ACT_DIMMMER230_60HZ_PERIOD_TIME     8000
  35.  
  36. #if act_dimmer230_ZC_PCINT<8
  37. #define act_dimmer230_ZC_PCINT_vect PCINT0_vect     //interrupt vector
  38. #define act_dimmer230_ZC_PCIE       PCIE0           //interrupt enable
  39. #define act_dimmer230_ZC_PCIF       PCIF0           //interrupt flag
  40. #define act_dimmer230_ZC_PCMSK      PCMSK0          //mask register
  41. #define act_dimmer230_ZC_PCINT_BIT  act_dimmer230_ZC_PCINT      //interrupt bit
  42. #endif
  43.  
  44. #if act_dimmer230_ZC_PCINT>=8 && act_dimmer230_ZC_PCINT<16
  45. #define act_dimmer230_ZC_PCINT_vect PCINT1_vect     //interrupt vector
  46. #define act_dimmer230_ZC_PCIE       PCIE1           //interrupt enable
  47. #define act_dimmer230_ZC_PCIF       PCIF1           //interrupt flag
  48. #define act_dimmer230_ZC_PCMSK      PCMSK1          //mask register
  49. #define act_dimmer230_ZC_PCINT_BIT  act_dimmer230_ZC_PCINT-8    //interrupt bit
  50. #endif
  51.  
  52. #if act_dimmer230_ZC_PCINT>=16 && act_dimmer230_ZC_PCINT<24
  53. #define act_dimmer230_ZC_PCINT_vect PCINT2_vect     //interrupt vector
  54. #define act_dimmer230_ZC_PCIE       PCIE2           //interrupt enable
  55. #define act_dimmer230_ZC_PCIF       PCIF2           //interrupt flag
  56. #define act_dimmer230_ZC_PCMSK      PCMSK2          //mask register
  57. #define act_dimmer230_ZC_PCINT_BIT  act_dimmer230_ZC_PCINT-16   //interrupt bit
  58. #endif
  59.  
  60. void act_dimmer230_Init(void);
  61. void act_dimmer230_Process(void);
  62. void act_dimmer230_HandleMessage(StdCan_Msg_t *rxMsg);
  63. void act_dimmer230_List(uint8_t ModuleSequenceNumber);
  64.  
  65. #ifdef act_dimmer230_USEEEPROM
  66.     struct act_dimmer230_Data{
  67.         // the dimmer will store its current value in eeprom, to use when starting
  68.         uint8_t eeDimmerValue;
  69.     }; 
  70.  
  71. #endif
  72.  
  73. #endif // ACT_DIMMER230
  74.