00001
00002
00003
00004
00005
00006 #ifndef _UTIL_H
00007 #define _UTIL_H
00008
00009 #define BV2(a,b) (_BV(a)|_BV(b))
00010 #define BV3(a,b,c) (_BV(a)|_BV(b)|_BV(c))
00011 #define BV4(a,b,c,d) (_BV(a)|_BV(b)|_BV(c)|_BV(d))
00012 #define BV5(a,b,c,d,e) (_BV(a)|_BV(b)|_BV(c)|_BV(d)|_BV(e))
00013 #define BV6(a,b,c,d,e,f) (_BV(a)|_BV(b)|_BV(c)|_BV(d)|_BV(e)|_BV(f))
00014 #define BV7(a,b,c,d,e,f,g) (_BV(a)|_BV(b)|_BV(c)|_BV(d)|_BV(e)|_BV(f)|_BV(g))
00015
00017 enum _blinkmode {
00018 BLINK_NONE = 0,
00019 BLINK_HH = 1,
00020 BLINK_MM = 2,
00021 BLINK_ALL = 3,
00022 };
00023
00025 #define maketime(hh,mm) (((hh) << 8) + (mm))
00026
00029 #define _frombcd(x) ((x & 017) + (((x) & 0160)>>4) * 10)
00030
00033 uint8_t frombcd(uint8_t);
00034
00037 uint8_t days_in_month_bcd(uint8_t year, uint8_t month);
00038
00040 uint8_t bcd_increment(uint8_t x);
00041
00043 uint8_t day_of_week(uint8_t y, uint8_t m, uint8_t d);
00044
00046 void set_blinkmode(uint8_t mode);
00047
00049 void (*blinkhandler)(uint8_t);
00050
00051 void duty_set(uint8_t d);
00052
00053 uint8_t duty_get();
00054
00055 void fadeto(uint16_t t);
00056
00057 uint16_t get_display_value();
00058
00059
00060
00061 #endif