Merge remote-tracking branch 'origin/master'

release/v2.9
inmarket 2017-03-04 15:03:12 +10:00
commit c91715491d
2 changed files with 833 additions and 166 deletions

View File

@ -96,129 +96,814 @@
#define Initial_Counter 64 #define Initial_Counter 64
#define Temperature_LUT_Counter 672 #define Temperature_LUT_Counter 672
static uint8_t _lut_none[] = { static uint8_t const _lut_None[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00,0x00,0x00,0x00,0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00,0x00,0x00,0x00,0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00,0x00,0x00,0x00,0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00,0x00,0x00,0x00,0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00,0x00,0x00,0x00,0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00,0x00,0x00,0x00,0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00 0x00,0x00,0x00,0x00,0x00,0x00
};
static uint8_t const _lut_KWvcom_DC_GU[] = {
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x0C,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00
}; };
static uint8_t _lut_temperature[] = { static uint8_t const _lut_KWvcom_DC_A2_240ms[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x29, 0xa9, 0xa9, 0xa8, 0x00,
0x29, 0xa9, 0xa9, 0xa8, 0x29, 0xa9, 0x0C,
0xa9, 0xa8, 0x29, 0xa9, 0xa9, 0xa8, 0x00,
0x29, 0xa9, 0xa9, 0xa8, 0x29, 0xa9, 0x00,
0xa9, 0xa8, 0x29, 0xa9, 0xa9, 0xa0, 0x00,
0x29, 0xa9, 0x29, 0xa0, 0x28, 0xa9, 0x00,
0x21, 0x80, 0x28, 0xa9, 0x05, 0x80, 0x00,
0x28, 0xa1, 0x05, 0x04, 0x28, 0x80, 0x00,
0x05, 0x14, 0x08, 0x00, 0x15, 0x54, 0x00,
0x00, 0x04, 0x04, 0x54, 0x02, 0x54, 0x00,
0x14, 0x54, 0x02, 0x56, 0x14, 0x54, 0x00,
0x06, 0x56, 0x56, 0x54, 0x06, 0x56, 0x00,
0x56, 0x54, 0x16, 0x56, 0x56, 0x54, 0x00,
0x16, 0x56, 0x56, 0x54, 0x16, 0x56, 0x00,
0x52, 0x50, 0x16, 0x56, 0x52, 0x50, 0x00,
0x16, 0x56, 0x52, 0x50, 0x16, 0x52, 0x00,
0x52, 0x50, 0x16, 0x52, 0x52, 0x50, 0x00,
0x12, 0x52, 0x52, 0x40, 0x12, 0x52, 0x00,
0x52, 0x40, 0x1a, 0x4a, 0x4a, 0x48, 0x00,
0x2a, 0x6a, 0x6a, 0x68, 0x2a, 0x6a, 0x00,
0x6a, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00,
0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, static uint8_t const _lut_KWvcom_DC_A2_120ms[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, static uint8_t const _lut_kw_GU[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x50, 0x55, 0x02, 0x00, 0x00, 0x40,
0x5a, 0x55, 0x5a, 0x5a, 0x00, 0xff, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00 0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00
};
static uint8_t const _lut_kw_A2_240ms[] = {
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00
};
static uint8_t const _lut_kw_A2_120ms[] = {
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x02, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00
};
static uint8_t const _lut_KWvcom[] = {
0x55,
0x6A,
0xA5,
0x55,
0x55,
0x55,
0x55,
0x55,
0x56,
0xAA,
0xAA,
0xAA,
0xAA,
0xAA,
0xAA,
0x0C,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00
};
static uint8_t const _lut_kw[] = {
0x41, 0x00, 0x00, 0x81,
0x41, 0x00, 0x00, 0x81,
0x41, 0x00, 0x00, 0x81,
0x41, 0x00, 0x00, 0x81,
0x41, 0x00, 0x00, 0x81,
0x81, 0x00, 0x00, 0x82,
0x81, 0x00, 0x00, 0x82,
0x81, 0x00, 0x00, 0x82,
0x81, 0x00, 0x00, 0x82,
0x81, 0x00, 0x00, 0x82,
0x42, 0x00, 0x00, 0x41,
0x42, 0x00, 0x00, 0x41,
0x42, 0x00, 0x00, 0x41,
0x42, 0x00, 0x00, 0x41,
0x42, 0x00, 0x00, 0x41,
0x42, 0x00, 0x00, 0x41,
0x42, 0x00, 0x00, 0x41,
0x42, 0x00, 0x00, 0x41,
0x42, 0x00, 0x00, 0x41,
0x42, 0x00, 0x00, 0x41,
0x42, 0x00, 0x00, 0x41,
0x42, 0x00, 0x00, 0x41,
0x42, 0x00, 0x00, 0x41,
0x42, 0x00, 0x00, 0x41,
0x42, 0x00, 0x00, 0x41,
0x42, 0x00, 0x00, 0x41,
0x42, 0x00, 0x00, 0x41,
0x42, 0x00, 0x00, 0x41,
0x42, 0x00, 0x00, 0x41,
0x42, 0x00, 0x00, 0x41,
0x42, 0x00, 0x00, 0x41,
0x42, 0x00, 0x00, 0x41,
0x42, 0x00, 0x00, 0x41,
0x42, 0x00, 0x00, 0x41,
0x42, 0x00, 0x00, 0x41,
0x82, 0x00, 0x00, 0x42,
0x82, 0x00, 0x00, 0x42,
0x82, 0x00, 0x00, 0x42,
0x82, 0x00, 0x00, 0x42,
0x82, 0x00, 0x00, 0x42,
0x82, 0x00, 0x00, 0x42,
0x82, 0x00, 0x00, 0x42,
0x82, 0x00, 0x00, 0x42,
0x82, 0x00, 0x00, 0x42,
0x82, 0x00, 0x00, 0x42,
0x82, 0x00, 0x00, 0x42,
0x82, 0x00, 0x00, 0x42,
0x82, 0x00, 0x00, 0x42,
0x82, 0x00, 0x00, 0x42,
0x82, 0x00, 0x00, 0x42,
0x82, 0x00, 0x00, 0x42,
0x82, 0x00, 0x00, 0x42,
0x82, 0x00, 0x00, 0x42,
0x82, 0x00, 0x00, 0x42,
0x82, 0x00, 0x00, 0x42,
0x82, 0x00, 0x00, 0x42,
0x82, 0x00, 0x00, 0x42,
0x82, 0x00, 0x00, 0x42,
0x82, 0x00, 0x00, 0x42,
0x82, 0x00, 0x00, 0x42,
0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00
};
static uint8_t const _lut_ft[] = {
0x55,
0x55,
0x55,
0x55,
0x55,
0xAA,
0xAA,
0xAA,
0xAA,
0xAA,
0x55,
0x55,
0x55,
0x55,
0x55,
0x55,
0x55,
0x55,
0x55,
0x55,
0x55,
0x55,
0x55,
0x55,
0x55,
0x55,
0x55,
0x55,
0x55,
0x55,
0x5A,
0x5A,
0x5A,
0x5A,
0x5A,
0xAA,
0xAA,
0xAA,
0xAA,
0xAA,
0xAA,
0xAA,
0xAA,
0xAA,
0xAA,
0xAA,
0x5A,
0x5A,
0x5A,
0x5A,
0x5A,
0x5A,
0x5A,
0x5A,
0x5A,
0x5A,
0x5A,
0x5A,
0x5A,
0x5A,
0x00,
0xFF,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00
}; };
#endif // _UC8173_H #endif // _UC8173_H

View File

@ -32,7 +32,7 @@
#endif #endif
#define PRIV(g) ((UC8173_Private*)((g)->priv)) #define PRIV(g) ((UC8173_Private*)((g)->priv))
#define FRAMEBUFFER(g) ((uint8_t *)(PRIV(g)+1)) #define FRAMEBUFFER(g) (((uint8_t*)(PRIV(g)))+1)
#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER << 0) #define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER << 0)
#if GDISP_LLD_PIXELFORMAT == GDISP_PIXELFORMAT_MONO #if GDISP_LLD_PIXELFORMAT == GDISP_PIXELFORMAT_MONO
@ -74,41 +74,22 @@ static GFXINLINE void _wait_for_busy_low(GDisplay* g)
while (getpin_busy(g)); while (getpin_busy(g));
} }
static void _load_lut(GDisplay* g, uint32_t LUT, uint8_t* LUT_Value) void _load_lut(GDisplay* g, uint32_t lutRegister, const uint8_t* lut, uint32_t lutCounter)
{
int i,counter;
int MODE = 2;
if(MODE == 0)
counter = 512; //512
else
counter = 42;
if(LUT == 0x26)
counter = 128;
write_cmd(g, LUT);
for(i = 0; i < counter; i++) {
write_data(g, *LUT_Value);
LUT_Value++;
}
}
void _load_lut2(GDisplay* g, uint32_t LUT, uint8_t* LUT_Value, uint32_t LUT_Counter)
{ {
uint32_t i; uint32_t i;
write_cmd(g, LUT); write_cmd(g, lutRegister);
for (i = 0; i < LUT_Counter; i++) { for (i = 0; i < lutCounter; i++) {
write_data(g, *LUT_Value); write_data(g, *lut);
LUT_Value++; lut++;
} }
} }
static void _upload_Temperature_LUT(GDisplay* g) static void _upload_lut(GDisplay* g)
{ {
_load_lut2(g, LUT_KWVCOM, &_lut_temperature[0], 32); _load_lut(g, LUT_KWVCOM, _lut_KWvcom_DC_A2_240ms, 32);
_load_lut2(g, LUT_KW, &_lut_temperature[32], 512); _load_lut(g, LUT_KW, _lut_kw_A2_240ms, 512);
_load_lut2(g, LUT_FT, &_lut_temperature[544], 128); _load_lut(g, LUT_FT, _lut_ft, 128);
} }
static void _clear_lut(GDisplay* g) static void _clear_lut(GDisplay* g)
@ -116,24 +97,26 @@ static void _clear_lut(GDisplay* g)
write_cmd(g, PON); write_cmd(g, PON);
_wait_for_busy_high(g); _wait_for_busy_high(g);
_load_lut(g, LUT_KW, _lut_none); _load_lut(g, LUT_KW, _lut_None, 42);
_load_lut(g, LUT_KWVCOM, _lut_none); _load_lut(g, LUT_KWVCOM, _lut_None, 42);
write_cmd(g, POF); write_cmd(g, POF);
_wait_for_busy_low(g); _wait_for_busy_low(g);
} }
static void _invertFramebuffer(GDisplay* g) #if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL
{ static void _invertFramebuffer(GDisplay* g)
uint32_t i; {
uint32_t i;
for (i = 0; i < LINE_BYTES*GDISP_SCREEN_HEIGHT; i++) { for (i = 0; i < LINE_BYTES*GDISP_SCREEN_HEIGHT; i++) {
FRAMEBUFFER(g)[i] = ~(FRAMEBUFFER(g)[i]); FRAMEBUFFER(g)[i] = ~(FRAMEBUFFER(g)[i]);
}
// We should flush these changes to the display controller framebuffer at some point
g->flags |= GDISP_FLG_NEEDFLUSH;
} }
#endif
// We should flush these changes to the display controller framebuffer at some point
g->flags |= GDISP_FLG_NEEDFLUSH;
}
LLDSPEC bool_t gdisp_lld_init(GDisplay* g) LLDSPEC bool_t gdisp_lld_init(GDisplay* g)
{ {
@ -221,7 +204,6 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay* g)
// Auto measure VCOM // Auto measure VCOM
write_cmd(g, AMV); write_cmd(g, AMV);
write_data(g, 0x11); // 5 seconds, enabled write_data(g, 0x11); // 5 seconds, enabled
_wait_for_busy_high(g); _wait_for_busy_high(g);
// Get current VCOM value // Get current VCOM value
@ -294,7 +276,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay* g)
acquire_bus(g); acquire_bus(g);
// Upload the new temperature LUT // Upload the new temperature LUT
_upload_Temperature_LUT(g); _upload_lut(g);
// Setup the window // Setup the window
write_cmd(g, DTMW); write_cmd(g, DTMW);
@ -319,7 +301,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay* g)
// Refresh the panel contents // Refresh the panel contents
write_cmd(g, DRF); write_cmd(g, DRF);
write_data(g, 0x08); // Enable REGAL function write_data(g, 0x00); // Enable REGAL function
write_data(g, 0x00); write_data(g, 0x00);
write_data(g, 0x00); write_data(g, 0x00);
write_data(g, 0x00); write_data(g, 0x00);
@ -366,7 +348,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay* g)
y = g->p.x; y = g->p.x;
break; break;
} }
// Modify the framebuffer content // Modify the framebuffer content
p = &FRAMEBUFFER(g)[xyaddr(x,y)]; p = &FRAMEBUFFER(g)[xyaddr(x,y)];
*p &=~ xybit(x, LLDCOLOR_MASK()); *p &=~ xybit(x, LLDCOLOR_MASK());