Subversion Repositories HomeAutomation

Rev

Blame | Last modification | View Log | SVN | RSS feed

  1. /**
  2.  * @defgroup io PWM driver
  3.  * @code #include <drivers/io/PCA9634.h> @endcode
  4.  *
  5.  * @brief Simple driver for PCA9634 PWM driver.
  6.  *
  7.  *
  8.  * @author  Anders Runeson
  9.  * @date    2011-02-13
  10.  */
  11.  
  12. /**@{*/
  13.  
  14. #ifndef PCA9634_H_
  15. #define PCA9634_H_
  16.  
  17. /*-----------------------------------------------
  18.  * Definitions
  19.  * ---------------------------------------------*/
  20.  
  21. typedef enum
  22. {
  23.     PCA9634_OP_OFF      =   0,
  24.     PCA9634_OP_ON       =   1,
  25.     PCA9634_OP_IND      =   2,
  26.     PCA9634_OP_INDGRP   =   3
  27. } pca9634_OpMode_t;
  28.  
  29. #define PCA9634_MODE1_SLEEP (0<<4)
  30. #define PCA9634_MODE1_SUB1 (0<<3)
  31. #define PCA9634_MODE1_SUB2 (0<<2)
  32. #define PCA9634_MODE1_SUB3 (0<<1)
  33. #define PCA9634_MODE1_ALL (0<<0)
  34.  
  35. #define PCA9634_REG_MODE1       0
  36. #define PCA9634_REG_MODE2       1
  37. #define PCA9634_REG_PWM0        2
  38. #define PCA9634_REG_PWM1        3
  39. #define PCA9634_REG_PWM2        4
  40. #define PCA9634_REG_PWM3        5
  41. #define PCA9634_REG_PWM4        6
  42. #define PCA9634_REG_PWM5        7
  43. #define PCA9634_REG_PWM6        8
  44. #define PCA9634_REG_PWM7        9
  45. #define PCA9634_REG_GRPPWM      10
  46. #define PCA9634_REG_GRPFREQ     11
  47. #define PCA9634_REG_LEDOUT0     12
  48. #define PCA9634_REG_LEDOUT1     13
  49. #define PCA9634_REG_SUBADR1     14
  50. #define PCA9634_REG_SUBADR2     15
  51. #define PCA9634_REG_SUBADR3     16
  52. #define PCA9634_REG_ALLCALLADR  17
  53.  
  54. /*-----------------------------------------------
  55.  * Inclusions
  56.  * ---------------------------------------------*/
  57. #include <stdlib.h>
  58. #include <inttypes.h>
  59.  
  60.  
  61. /*-----------------------------------------------
  62.  * Function Prototypes
  63.  * ---------------------------------------------*/
  64.  
  65. /**
  66.  * @brief Initialize PCA9634 connection.
  67.  *
  68.  */
  69. void pca9634_init(uint8_t address);
  70.  
  71. /**
  72.  * @brief Sets the duty cycle for a PWM output.
  73.  *
  74.  *
  75.  */
  76. void pca9634_setDuty(uint8_t id, uint8_t step);
  77.  
  78. /**
  79.  * @brief Sets the output mode for a PWM output.
  80.  *
  81.  *
  82.  */
  83. void pca9634_setOpMode(uint8_t id, pca9634_OpMode_t mode);
  84.  
  85. /**@}*/
  86. #endif
  87.  
  88.