Fixed the pylibcerebrum python module __init__
[cerebrum.git] / avr / pwm.h
blobbc24a1f6f62b360e731bcfef304416b3e57611c2
2 //CAUTION! This module uses Timer 0
4 #ifndef __PWM_H__
5 #define __PWM_H__
7 #include <avr/io.h>
8 #include <avr/interrupt.h>
9 #include "config.h"
11 #ifdef HAS_PWM_SUPPORT
13 extern uint8_t pwm_cycle;
14 extern uint8_t pwm_val[];
15 #define PWM_COUNT 8
17 extern void pwm_output_setup(void);
18 extern void pwm_set_outputs(uint8_t data);
19 extern void pwm_unset_outputs(void);
20 #ifdef PWM_ANIMATE
21 extern void pwm_animate(void);
22 #endif//PWM_ANIMATE
24 typedef struct {
25 uint8_t r;
26 uint8_t g;
27 uint8_t b;
28 } rgb_value_t;
30 typedef union {
31 rgb_value_t rgb_value;
32 uint8_t components[3];
33 } rgb_color_t;
35 typedef struct {
36 uint16_t h;
37 uint8_t s;
38 uint8_t v;
39 } hsv_value_t;
41 rgb_value_t hsv_to_rgb(hsv_value_t k);
43 #endif//HAS_PWM_SUPPORT
45 void pwm_setup(void);
46 void pwm_loop(void);
48 #endif//__PWM_H__