#ifndef LIBLEDS_H #define LIBLEDS_H #include struct led_color { unsigned char red; unsigned char green; unsigned char blue; }; struct led_obj { /* * port to use as output. * * The port must already be configured for output. * * currently this is not used and PORTD is used instead. */ uint16_t port; /* * bitmask specifing with ports to use. * * currently this is not used and 0xFF is used instead. */ unsigned char pins; /* * the width of the object. * * Might be 0 if the width is unknown. Some function that depend on * knowing the number of elements will not work. */ unsigned int width; /* * the height of the object. * * Might be 0 if the height is unknown. Some function that depend on * knowing the number of elements will not work. * * If the object is not a rectangle this should be set to 1. * width is then the number of leds in the strip / star / ... */ unsigned int height; }; void led_write_rgb(uint16_t const port, unsigned char const pins, struct led_color color); void led_write_rgb_all(struct led_obj const obj, struct led_color const color); void led_latch(); #endif /* !LIBLEDS_H */