Subversion Repositories HomeAutomation

Rev

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

Rev Author Line No. Line
1703 arune 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