Subversion Repositories HomeAutomation

Rev

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