Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
IST3020.cpp
00001 /* mbed UniGraphic library - Device specific class 00002 * Copyright (c) 2015 Giuliano Dianda 00003 * Released under the MIT License: http://mbed.org/license/mit 00004 */ 00005 #include "Protocols.h " 00006 #include "IST3020.h" 00007 00008 /*this is a quite standard config, similar to ST7565, except bigger screen and diff resistor ratio value*/ 00009 00010 ////////////////////////////////////////////////////////////////////////////////// 00011 // display settings /////////////////////////////////////////////////////// 00012 ///////////////////////////////////////////////////////////////////////// 00013 #define IC_X_SEGS 256 // IST3020 SEG has range 0-255 (255-0 if ADC=1), check your datasheet, important for the orientation 00014 #define IC_Y_COMS 64 // IST3020 COM has range 0-63 (63-0 if SHL=1), check your datasheet, important for the orientation 00015 // put in constructor 00016 //#define LCDSIZE_X 192 // display X pixels, IST3020 is advertised as 224x65 but display size could be smaller 00017 //#define LCDSIZE_Y 64 // display Y pixels, the 65th is for accessing "icons" 00018 00019 00020 00021 IST3020::IST3020(proto_t displayproto, PortName port, PinName CS, PinName reset, PinName DC, PinName WR, PinName RD, const char *name, unsigned int LCDSIZE_X, unsigned int LCDSIZE_Y) 00022 : LCD(displayproto, port, CS, reset, DC, WR, RD, LCDSIZE_X, LCDSIZE_Y, IC_X_SEGS, IC_Y_COMS, name) 00023 { 00024 hw_reset(); 00025 BusEnable(true); 00026 init(); 00027 cls(); 00028 set_orientation(1); 00029 locate(0,0); 00030 } 00031 IST3020::IST3020(proto_t displayproto, int Hz, PinName mosi, PinName miso, PinName sclk, PinName CS, PinName reset, PinName DC, const char *name, unsigned int LCDSIZE_X, unsigned int LCDSIZE_Y) 00032 : LCD(displayproto, Hz, mosi, miso, sclk, CS, reset, DC, LCDSIZE_X, LCDSIZE_Y, IC_X_SEGS, IC_Y_COMS, name) 00033 { 00034 hw_reset(); 00035 BusEnable(true); 00036 init(); 00037 cls(); 00038 set_orientation(1); 00039 locate(0,0); 00040 } 00041 // reset and init the lcd controller 00042 // init sequence is manufacturer specific 00043 void IST3020::init() 00044 { 00045 /* Start Initial Sequence ----------------------------------------------------*/ 00046 00047 wr_cmd8(0xE2); // sw reset 00048 wait_ms(10); 00049 00050 wr_cmd8(0xAE); // display off 00051 wr_cmd8(0xAB); // built-in OSC on 00052 wr_cmd8(0xA2); // bias voltage (1/9) 00053 // wr_cmd8(0xA3); // bias voltage (1/7) 00054 00055 wr_cmd8(0xA0); // ADC select seg0-seg223 00056 //wr_cmd8(0xA1); // ADC select seg223-seg0 00057 wr_cmd8(0xC8); // SHL select com63-com0 00058 //wr_cmd8(0xC0); // SHL select com0-com63 00059 00060 wr_cmd8(0x2C); // Internal Voltage Converter ON 00061 wait_ms(10); 00062 wr_cmd8(0x2E); // Internal Voltage Regulator ON 00063 wait_ms(10); 00064 wr_cmd8(0x2F); // Internal Voltage Follower ON 00065 wait_ms(10); 00066 wr_cmd8(0x20); // Regulor_Resistor_Select resistor ratio 20-27 20=4.5(default) 27=8.0, 0.5 steps 00067 set_contrast(46); 00068 //wr_cmd8(0x81); // set contrast (reference voltage register set) 00069 //wr_cmd8(0x20); // contrast 00-3F default 20 00070 00071 wr_cmd8(0xA4); // LCD display ram (EntireDisplayOn disable) 00072 //wr_cmd8(0x70); // External Capacitors Discharge function enable (should be enabled by default) 00073 //wr_cmd8(0x77); // External Capacitors Discharge function disable 00074 wr_cmd8(0x40); // start line = 0 00075 wr_cmd8(0xA6); // display normal (1 = illuminated) 00076 wr_cmd8(0xAF); // display ON 00077 00078 }
Generated on Fri Jul 15 2022 13:58:04 by
