diff --git a/hcl b/hcl index 9dc33a9..001d44d 160000 --- a/hcl +++ b/hcl @@ -1 +1 @@ -Subproject commit 9dc33a9abadbde8e0c2ffc853a35feaf6990c143 +Subproject commit 001d44d6b9693a9ad3fd6fc8bc44e8dc22ad7149 diff --git a/src/logo.rs b/src/logo.rs index ad86918..5432753 100644 --- a/src/logo.rs +++ b/src/logo.rs @@ -1,4 +1,4 @@ -use st7735::bitmaps::ColorBitmap; +use st7735::bitmaps::{ColorBitmap, MonoBitmap}; const LOGO_PX : [u16; 1024] = [ 0x4081, 0x4880, 0x4880, 0x2861, 0x38c1, 0x38c1, 0x30a1, 0x3081, 0x2861, 0x1861, 0x1061, 0x28a1, 0x3060, 0x2861, 0x821, 0x1041, 0x1861, 0x821, 0x821, 0x1, 0x821, 0x1841, 0x2061, 0x1841, 0x2061, 0x2881, 0x38a1, 0x5122, 0x2104, 0x5a48, 0x5a48, 0x6aea, @@ -36,7 +36,136 @@ const LOGO_PX : [u16; 1024] = [ ]; pub const LOGO : ColorBitmap = ColorBitmap { - width : 4, - height : 4, + width : 32, + height : 32, pixels : &LOGO_PX, }; + +const LOGO_BW_PX : [u8; 2070] = [ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfc, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0, 0xff, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xff, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, 0xff, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfc, 0xff, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xcf, 0x3f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x3f, 0xff, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x7f, 0xf8, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xe1, 0x3f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, 0x3, 0xff, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x7, 0xfc, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x1f, 0xff, 0x3f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x3f, 0xfe, 0xff, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xff, 0xf8, 0xff, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xf1, 0xfb, 0x3f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfc, 0xe7, 0xe7, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0xff, 0x8f, 0xff, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0, 0xff, 0x1f, 0xfe, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xff, 0x3b, 0xf8, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xcf, 0xe0, 0xff, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, 0x3f, 0x80, 0xff, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfc, 0xff, 0x0, 0xfe, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xff, 0x87, 0xf9, 0xff, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0, 0xff, 0x1f, 0xc7, 0xff, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x7f, 0x7e, 0xc, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xf9, 0x31, 0xfc, 0xff, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfc, 0xe3, 0xc7, 0xf0, 0xf7, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x7, 0x3f, 0xc0, 0xdf, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x1f, 0xfc, 0x0, 0x7f, 0xff, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x7f, 0xf0, 0x3, 0xfc, 0xfc, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xff, 0x83, 0xf, 0xfc, 0xe3, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, 0xf, 0x3e, 0xf8, 0xf, 0xfe, 0x1, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfc, 0x7f, 0xf8, 0xf1, 0x1f, 0xf8, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0xff, 0xc1, 0xc7, 0x7f, 0xc0, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0, 0xff, 0xf, 0x9f, 0xf7, 0x81, 0xff, 0x1, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xff, 0x3d, 0x7f, 0xc6, 0x3, 0xfe, 0xf, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xff, 0xe7, 0xed, 0xf, 0xf, 0xfc, 0x3f, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, 0x9f, 0x87, 0x3f, 0x3c, 0xf0, 0xff, 0x1, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xfc, 0xff, 0x3c, 0x7c, 0x70, 0xc0, 0xff, 0xf, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xff, 0xff, 0xf1, 0xc3, 0x81, 0xff, 0x3f, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x3f, 0xff, 0xc7, 0xef, 0x7, 0x3e, 0xff, 0x1, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x80, 0x7f, 0xf8, 0x3f, 0x8e, 0x9f, 0xfc, 0xfc, 0x7, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x81, 0xff, 0x38, 0x3e, 0xf3, 0xfb, 0x3f, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xfc, 0x3, 0xfc, 0xe7, 0xfc, 0xec, 0xe7, 0xff, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0xf, 0xc0, 0x1f, 0xf3, 0x93, 0xc3, 0xfd, 0x7, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xf0, 0x1f, 0x0, 0xfe, 0x8c, 0x7, 0x8f, 0xe1, 0x1f, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xc0, 0x3f, 0x0, 0xe0, 0x3, 0xf, 0x1c, 0xc0, 0xff, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x80, 0xff, 0x0, 0x0, 0xf, 0x3e, 0x30, 0x80, 0xff, 0x7, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, 0x1, 0x0, 0x8, 0xf8, 0x0, 0x0, 0xff, 0x1f, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xfc, 0x3, 0x0, 0x40, 0xe0, 0x3, 0x2, 0x7e, 0xff, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xf0, 0xf, 0x0, 0x80, 0xc7, 0x1f, 0x1e, 0x7c, 0xfc, 0x3, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xe0, 0x1f, 0x0, 0x0, 0xff, 0xff, 0xff, 0xf8, 0xfc, 0x1f, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xc0, 0x7f, 0x0, 0x0, 0xfc, 0xff, 0xff, 0xf3, 0xf8, 0xff, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xf0, 0xff, 0xff, 0xc7, 0xf9, 0xff, 0x3, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xfe, 0x3, 0x0, 0x80, 0xff, 0xff, 0x1f, 0xf8, 0xf1, 0x1f, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xf8, 0x7, 0x0, 0x0, 0xfc, 0xff, 0x3f, 0x70, 0x80, 0x7f, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xf0, 0x1f, 0x0, 0x0, 0xf8, 0xff, 0xff, 0x0, 0x80, 0xff, 0x3, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xc0, 0x3f, 0x0, 0x0, 0xe0, 0x7f, 0xfe, 0x7, 0xc0, 0xff, 0xf, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x80, 0x7f, 0x0, 0x0, 0x80, 0x7f, 0xe0, 0x1f, 0xf8, 0xff, 0x7f, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xff, 0x1, 0x0, 0xe0, 0xff, 0x0, 0xff, 0xf7, 0xff, 0xff, 0x3, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0xfc, 0x3, 0x0, 0xc0, 0xff, 0x3, 0xfc, 0x1f, 0x0, 0xf8, 0xf, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xf8, 0xf, 0x0, 0x0, 0xff, 0xf, 0xf0, 0x7f, 0x0, 0xff, 0x7f, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xf0, 0x1f, 0x0, 0x0, 0xfc, 0x3f, 0xc0, 0xff, 0x1, 0xe0, 0xff, 0x3, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xc0, 0x7f, 0x0, 0x0, 0xe0, 0xff, 0x0, 0xff, 0x7, 0x0, 0xf8, 0xf, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x80, 0xff, 0x0, 0x0, 0x0, 0xfc, 0x7, 0xfe, 0xc1, 0xff, 0xff, 0x7f, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xfe, 0x1, 0x0, 0x0, 0xe0, 0x3f, 0xfc, 0x7, 0xf0, 0xff, 0xff, 0x1, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xfc, 0x7, 0x0, 0x0, 0x80, 0xff, 0xf0, 0x1f, 0x0, 0xf8, 0xff, 0xf, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xf0, 0xf, 0x0, 0x0, 0x0, 0xfc, 0xc1, 0x3f, 0x0, 0xf0, 0xf1, 0x3f, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xe0, 0x3f, 0x0, 0x0, 0x0, 0xf8, 0x7, 0xfe, 0x1, 0xc7, 0xf, 0xff, 0x1, 0x0, 0x0, + 0x0, 0x0, 0xc0, 0x7f, 0x80, 0x7, 0x0, 0xf0, 0x1f, 0xf8, 0xc7, 0x3f, 0x10, 0xf8, 0x7, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xff, 0x0, 0x3f, 0x0, 0xc0, 0x3f, 0xe0, 0x3f, 0xfc, 0x1f, 0xc0, 0x3f, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xfe, 0x3, 0xfe, 0x1, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x1f, 0xff, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xf8, 0x7, 0xf8, 0x7, 0x0, 0x38, 0x0, 0xe0, 0x79, 0xc0, 0xff, 0xff, 0x7, 0x0, 0x0, + 0x0, 0x0, 0xf0, 0x1f, 0xe0, 0x1f, 0x0, 0x46, 0x0, 0x0, 0xe2, 0x1, 0xff, 0xff, 0x3f, 0x0, 0x0, + 0x0, 0x0, 0xc0, 0x3f, 0x80, 0x7f, 0x0, 0x3e, 0x0, 0x0, 0x60, 0x3c, 0xfc, 0xff, 0xff, 0x0, 0x0, + 0x0, 0x0, 0x80, 0x7f, 0x0, 0xfe, 0x1, 0xfc, 0x0, 0x0, 0x0, 0xc3, 0xe3, 0x9f, 0xff, 0x7, 0x0, + 0x0, 0x0, 0x0, 0xfe, 0x1, 0xf0, 0x3, 0xf8, 0x3, 0x0, 0x0, 0x38, 0x3c, 0x3c, 0xe0, 0x1f, 0x0, 0x0, + 0x0, 0x0, 0xfc, 0x3, 0x78, 0xf8, 0xff, 0x3, 0x0, 0x0, 0xc0, 0xc1, 0x7, 0x0, 0xff, 0x0, 0x0, + 0x0, 0x0, 0xf8, 0xf, 0xf0, 0xff, 0xff, 0x7, 0x0, 0x0, 0x0, 0x1c, 0x7c, 0x0, 0xfc, 0x7, 0x0, + 0x0, 0x0, 0xe0, 0x1f, 0xe0, 0xff, 0xff, 0xf, 0x0, 0xf8, 0x1, 0xe0, 0xc0, 0x7, 0xe0, 0x1f, 0x0, + 0x0, 0x0, 0xc0, 0x7f, 0xc0, 0xff, 0xff, 0x1f, 0x0, 0xff, 0x7, 0x0, 0xf, 0x7c, 0x80, 0xff, 0x0, 0x0, + 0x0, 0x0, 0xff, 0x80, 0xff, 0xff, 0x3f, 0xc0, 0xff, 0x1f, 0x0, 0x78, 0xf8, 0x7, 0xfc, 0x3, 0x0, + 0x0, 0x0, 0xfe, 0x1, 0xff, 0xff, 0x3, 0x80, 0xff, 0x7f, 0x0, 0xc0, 0xf7, 0x7f, 0xe0, 0x1f, 0x0, + 0x0, 0x0, 0xfc, 0x7, 0xfe, 0xff, 0x1f, 0x80, 0xff, 0xff, 0x0, 0x0, 0xfc, 0xdf, 0x87, 0xff, 0x0, + 0x0, 0x0, 0xf0, 0xf, 0xfc, 0xf9, 0xff, 0x80, 0xff, 0xf, 0x0, 0x0, 0xe0, 0x7f, 0x7c, 0xfc, 0x3, 0x0, + 0x0, 0xe0, 0x3f, 0xf0, 0xc3, 0xff, 0x7, 0xff, 0x1, 0x0, 0x0, 0x0, 0x1f, 0xc0, 0xff, 0x1f, 0x0, + 0x0, 0x80, 0x7f, 0xc0, 0x7, 0xfe, 0x3f, 0xff, 0x3, 0x0, 0x0, 0x0, 0xf8, 0x1, 0xfc, 0x7f, 0x0, + 0x0, 0x0, 0xff, 0x1, 0xf, 0xf0, 0xff, 0xff, 0x3, 0x0, 0x0, 0x0, 0xc0, 0x1f, 0xc0, 0xff, 0x3, + 0x0, 0x0, 0xfe, 0x3, 0x3c, 0xc0, 0xff, 0xff, 0x7, 0x0, 0x0, 0x0, 0x0, 0xfc, 0x0, 0xfc, 0x1f, 0x0, + 0x0, 0xf8, 0xf, 0xf0, 0x0, 0xfe, 0xff, 0x7, 0x0, 0x0, 0x0, 0x0, 0xe0, 0xf, 0xc7, 0x7f, 0x0, + 0x0, 0xf0, 0x1f, 0xc0, 0x3, 0xf0, 0xff, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x1c, 0xfe, 0x3, + 0x0, 0xc0, 0x3f, 0x0, 0xf, 0x80, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x7, 0xf0, 0xf, + 0x0, 0x80, 0xff, 0x0, 0x3c, 0x0, 0xfc, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x80, 0x7f, 0xc0, 0x7f, 0x0, + 0x0, 0xfe, 0x1, 0xf0, 0x0, 0xe0, 0xff, 0xff, 0xf, 0x0, 0x0, 0x0, 0x0, 0xfc, 0x3, 0xfe, 0x1, + 0x0, 0xfc, 0x7, 0xc0, 0x3, 0x0, 0xfe, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x3f, 0xf8, 0xf, + 0x0, 0xf8, 0xf, 0x0, 0x0, 0x0, 0xc0, 0xff, 0xff, 0x7, 0x0, 0x0, 0x0, 0x0, 0xff, 0xc1, 0x7f, + 0x0, 0xe0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, 0x3f, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x1f, 0xfe, 0x1, + 0xc0, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, 0x3, 0x0, 0x0, 0x0, 0x80, 0xff, 0xf9, 0xf, + 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0xfc, 0xcf, 0x3f, + 0x0, 0xfe, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0xe0, 0xff, 0xff, + 0x1, 0xf8, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x7, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0x7, + 0xf0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xf, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xff, 0x3f, + 0xe0, 0x3f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x18, 0x0, 0x0, 0x0, 0x0, 0x80, 0xff, 0xff, + 0x81, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfc, 0xff, + 0x7, 0xff, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0, 0xff, 0x3f, + 0xfc, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, + 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f +]; + +pub const LOGO_BW : MonoBitmap = MonoBitmap { + width : 138, + height : 120, + pixels : &LOGO_BW_PX, +}; diff --git a/src/main.rs b/src/main.rs index cc8004f..42dd9d1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -142,8 +142,10 @@ fn run(mut scs: scs::Instance, mut p: hcl::platform::Instance) { st7735io.draw_line(4, 4, 80, 64, st7735::COLOR_GREEN); - systick::delay_ms(100); - //st7735io.draw_color_bitmap(10, 10, &logo::LOGO); + systick::delay_ms(1000); + st7735io.draw_mono_bitmap(11, 4, &logo::LOGO_BW, st7735::COLOR_WHITE, st7735::COLOR_BLACK); + systick::delay_ms(1000); + //st7735io.draw_color_bitmap(11, 4, &logo::LOGO); systick::delay_ms(5000); } let (st7735, mut spi, mut gpio) = st7735io.done(); diff --git a/src/st7735/gfx.rs b/src/st7735/gfx.rs index 209ce4d..d0cda1b 100644 --- a/src/st7735/gfx.rs +++ b/src/st7735/gfx.rs @@ -100,7 +100,6 @@ pub trait GFX : PrimitveGFX { let x0 = x0 as i16; let y0 = y0 as i16; - let r = r as i16; while x < y { if f >= 0 { diff --git a/src/st7735/mod.rs b/src/st7735/mod.rs index b2604af..336a6cf 100644 --- a/src/st7735/mod.rs +++ b/src/st7735/mod.rs @@ -219,8 +219,9 @@ impl St7735IO fn write_byte(&mut self, byte : u8) { self.spi.set_data(byte as u32); - while !self.spi.tx_buffer_empty() {}; - while self.spi.busy() {} + while !self.spi.tx_buffer_empty() || self.spi.busy() { + unsafe { asm!("nop" :::: "volatile"); } + }; } fn write_data_byte(&mut self, data : u8) { @@ -509,7 +510,7 @@ impl bitmaps::BitmapGFX for St7735IO where SPIAddr: Location, GPIOAddr: Location { - fn draw_color_bitmap(&mut self, x : u8, y: u8, bitmap: &bitmaps::ColorBitmap) { + fn draw_color_bitmap(&mut self, x : u8, y: u8, bitmap : &bitmaps::ColorBitmap) { if x >= self.st7735.width || y >= self.st7735.height { return; } @@ -521,17 +522,20 @@ impl bitmaps::BitmapGFX for St7735IO return; } - self.set_addr_win(x, y, x + bitmap.width - 1, y + bitmap.height - 1); + let x_end = x + bitmap.width - 1; + let y_end = y + bitmap.height - 1; + self.set_addr_win(x, y, x_end, y_end); self.set_rs(); self.reset_cs(); + let mut byte_pos : usize = 0; for i in 0..bitmap.height { for j in 0..bitmap.width { - let color = bitmap.pixels[(i * bitmap.width + j) as usize]; - self.write_color_bytes(color); - delay_ms(1); - } + let color = bitmap.pixels[byte_pos]; + self.write_color_bytes(color); + byte_pos += 1; + } } self.set_cs(); @@ -539,6 +543,48 @@ impl bitmaps::BitmapGFX for St7735IO fn draw_mono_bitmap(&mut self, x : u8, y: u8, bitmap: &bitmaps::MonoBitmap, color_set : u16, color_unset : u16) { + if x >= self.st7735.width || y >= self.st7735.height { + return; + } + + if((x + bitmap.width - 1) >= self.st7735.width) { + return; + } + if((y + bitmap.height - 1) >= self.st7735.height) { + return; + } + + let x_end = x + bitmap.width - 1; + let y_end = y + bitmap.height - 1; + self.set_addr_win(x, y, x_end, y_end); + + self.set_rs(); + self.reset_cs(); + + + let mut byte_pos : usize = 0; + let mut bit_pos : u8 = 0; + let mut byte : u8 = 0; + + for i in 0..bitmap.width { + for j in 0..bitmap.height{ + if bit_pos == 0 { + byte = bitmap.pixels[byte_pos]; + byte_pos += 1; + } + + if (byte & (1 << bit_pos)) != 0{ + self.write_color_bytes(color_set); + } + else { + self.write_color_bytes(color_unset); + } + bit_pos = (bit_pos + 1) % 8; + + } + } + + self.set_cs(); }