István Cserny / Mbed 2 deprecated Lab05_ST7585_test

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
cspista
Date:
Thu Dec 16 12:47:42 2021 +0000
Commit message:
Final version;

Changed in this revision

bitmap.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bitmap.h	Thu Dec 16 12:47:42 2021 +0000
@@ -0,0 +1,157 @@
+#ifndef BITMAP_H
+#define BITMAP_H
+
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+const unsigned char  BMP[768] = {
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0,
+    0xF8, 0xF8, 0xFC, 0xFC, 0xFC, 0xFC, 0xF8, 0xF0, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xF8, 0xF8, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xF0, 0x80, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x18, 0x3C, 0x7C, 0x7C, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC,
+    0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xF8, 0xF8, 0xF8, 0xF0, 0xF0,
+    0xE0, 0xE0, 0xC0, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x3F, 0x3F, 0x3F,
+    0x3F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x3F, 0x00, 0x00, 0x00,
+    0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x3F, 0x7F, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xCF, 0x8F, 0x0F,
+    0x0F, 0x0F, 0x0F, 0x0F, 0x1F, 0x1F, 0x3F, 0x3F, 0x7F, 0xFF, 0xFF, 0xC1, 0xC0, 0x80, 0x80, 0xC0,
+    0xE0, 0xF0, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFE, 0xFE, 0xFE, 0xFE, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xF8, 0x78, 0x78, 0x38, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+    0x03, 0x03, 0x87, 0x87, 0xC7, 0xC7, 0xE7, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0x7F, 0x3E, 0x1E, 0x1E, 0x0E, 0x0E, 0x0E, 0x06, 0x86, 0xEF, 0xFF, 0xFF, 0xFF, 0xDF, 0x0F, 0x0F,
+    0x0F, 0x1C, 0x1C, 0x3C, 0x78, 0xF8, 0xF8, 0xF8, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFE, 0xFE, 0x7F,
+    0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F, 0x3F, 0x1F, 0x1F,
+    0x0F, 0x0F, 0x07, 0x07, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0xF0, 0xFC,
+    0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFC, 0xF8, 0xFC, 0xFC, 0xFC, 0xFE, 0xFE, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE,
+    0xFC, 0xF8, 0xF0, 0xF0, 0xF0, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE,
+    0xFE, 0xFC, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF8, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F, 0x3F, 0x3F, 0x3F, 0x1F, 0x1F,
+    0x1F, 0x0F, 0x0F, 0x07, 0x07, 0x03, 0x03, 0x01, 0x00, 0x00, 0x01, 0x07, 0x0F, 0x1F, 0x3F, 0x3F,
+    0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+    0xFF, 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, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x07, 0x07, 0x0F, 0x0F, 0x0F, 0x1F, 0x1F, 0x3F, 0x3F,
+    0x3F, 0x7F, 0x3F, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+
+const unsigned char  FONT[] = {            // ASCII
+    0x00,0x00,0x00,0x00,0x00, // - -
+    0x00,0x00,0x5F,0x00,0x00, // -!-
+    0x00,0x07,0x00,0x07,0x00, // -"-
+    0x14,0x7F,0x14,0x7F,0x14, // -#-
+    0x24,0x2E,0x7B,0x2A,0x12, // -$-
+    0x23,0x13,0x08,0x64,0x62, // -%-
+    0x36,0x49,0x56,0x20,0x50, // -&-
+    0x00,0x04,0x03,0x01,0x00, // -'-
+    0x00,0x1C,0x22,0x41,0x00, // -(-
+    0x00,0x41,0x22,0x1C,0x00, // -)-
+    0x22,0x14,0x7F,0x14,0x22, // -*-
+    0x08,0x08,0x7F,0x08,0x08, // -+-
+    0x40,0x30,0x10,0x00,0x00, // -,-
+    0x08,0x08,0x08,0x08,0x08, // ---
+    0x00,0x60,0x60,0x00,0x00, // -.-
+    0x20,0x10,0x08,0x04,0x02, // -/-
+    0x3E,0x51,0x49,0x45,0x3E, // -0-
+    0x00,0x42,0x7F,0x40,0x00, // -1-
+    0x62,0x51,0x49,0x49,0x46, // -2-
+    0x21,0x41,0x49,0x4D,0x33, // -3-
+    0x18,0x14,0x12,0x7F,0x10, // -4-
+    0x27,0x45,0x45,0x45,0x39, // -5-
+    0x3C,0x4A,0x49,0x49,0x31, // -6-
+    0x01,0x71,0x09,0x05,0x03, // -7-
+    0x36,0x49,0x49,0x49,0x36, // -8-
+    0x46,0x49,0x49,0x29,0x1E, // -9-
+    0x00,0x36,0x36,0x00,0x00, // -:-
+    0x40,0x36,0x36,0x00,0x00, // -;-
+    0x08,0x14,0x22,0x41,0x00, // -<-
+    0x14,0x14,0x14,0x14,0x14, // -=-
+    0x00,0x41,0x22,0x14,0x08, // ->-
+    0x02,0x01,0x59,0x05,0x02, // -?-
+    0x3E,0x41,0x5D,0x55,0x5E, // -@-
+    0x7C,0x12,0x11,0x12,0x7C, // -A-
+    0x7F,0x49,0x49,0x49,0x36, // -B-
+    0x3E,0x41,0x41,0x41,0x22, // -C-
+    0x7F,0x41,0x41,0x41,0x3E, // -D-
+    0x7F,0x49,0x49,0x49,0x41, // -E-
+    0x7F,0x09,0x09,0x09,0x01, // -F-
+    0x3E,0x41,0x51,0x51,0x72, // -G-
+    0x7F,0x08,0x08,0x08,0x7F, // -H-
+    0x00,0x41,0x7F,0x41,0x00, // -I-
+    0x20,0x40,0x41,0x3F,0x01, // -J-
+    0x7F,0x08,0x14,0x22,0x41, // -K-
+    0x7F,0x40,0x40,0x40,0x40, // -L-
+    0x7F,0x02,0x0C,0x02,0x7F, // -M-
+    0x7F,0x04,0x08,0x10,0x7F, // -N-
+    0x3E,0x41,0x41,0x41,0x3E, // -O-
+    0x7F,0x09,0x09,0x09,0x06, // -P-
+    0x3E,0x41,0x51,0x21,0x5E, // -Q-
+    0x7F,0x09,0x19,0x29,0x46, // -R-
+    0x26,0x49,0x49,0x49,0x32, // -S-
+    0x01,0x01,0x7F,0x01,0x01, // -T-
+    0x3F,0x40,0x40,0x40,0x3F, // -U-
+    0x1F,0x20,0x40,0x20,0x1F, // -V-
+    0x7F,0x20,0x18,0x20,0x7F, // -W-
+    0x63,0x14,0x08,0x14,0x63, // -X-
+    0x03,0x04,0x78,0x04,0x03, // -Y-
+    0x61,0x51,0x49,0x45,0x43, // -Z-
+    0x7F,0x7F,0x41,0x41,0x00, // -[-
+    0x02,0x04,0x08,0x10,0x20, // -\-
+    0x00,0x41,0x41,0x7F,0x7F, // -]-
+    0x04,0x02,0x7F,0x02,0x04, // -^-
+    0x08,0x1C,0x2A,0x08,0x08, // -_-
+    0x00,0x00,0x01,0x02,0x04, // -`-
+    0x24,0x54,0x54,0x38,0x40, // -a-
+    0x7F,0x28,0x44,0x44,0x38, // -b-
+    0x38,0x44,0x44,0x44,0x08, // -c-
+    0x38,0x44,0x44,0x28,0x7F, // -d-
+    0x38,0x54,0x54,0x54,0x08, // -e-
+    0x08,0x7E,0x09,0x09,0x02, // -f-
+    0x98,0xA4,0xA4,0xA4,0x78, // -g-
+    0x7F,0x08,0x04,0x04,0x78, // -h-
+    0x00,0x00,0x79,0x00,0x00, // -i-
+    0x00,0x80,0x88,0x79,0x00, // -j-
+    0x7F,0x10,0x28,0x44,0x40, // -k-
+    0x00,0x41,0x7F,0x40,0x00, // -l-
+    0x78,0x04,0x78,0x04,0x78, // -m-
+    0x04,0x78,0x04,0x04,0x78, // -n-
+    0x38,0x44,0x44,0x44,0x38, // -o-
+    0xFC,0x24,0x24,0x24,0x18, // -p-
+    0x18,0x24,0x24,0x24,0xFC, // -q-
+    0x04,0x78,0x04,0x04,0x08, // -r-
+    0x48,0x54,0x54,0x54,0x24, // -s-
+    0x04,0x3F,0x44,0x44,0x24, // -t-
+    0x3C,0x40,0x40,0x3C,0x40, // -u-
+    0x1C,0x20,0x40,0x20,0x1C, // -v-
+    0x3C,0x40,0x3C,0x40,0x3C, // -w-
+    0x44,0x28,0x10,0x28,0x44, // -x-
+    0x9C,0xA0,0xA0,0x90,0x7C, // -y-
+    0x44,0x64,0x54,0x4C,0x44, // -z-
+    0x08,0x36,0x41,0x00,0x00, // -{-
+    0x00,0x00,0x77,0x00,0x00, // -|-
+    0x00,0x00,0x41,0x36,0x08, // -}-
+    0x08,0x04,0x08,0x10,0x08, // -~-
+    0x55,0x2A,0x55,0x2A,0x55, // --
+};
+
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Dec 16 12:47:42 2021 +0000
@@ -0,0 +1,163 @@
+#include "mbed.h"
+#include "bitmap.h"
+
+#define NOP                 0x00
+#define Function_Set        0x20
+#define Display_Control     0x08
+#define Set_Y_Address       0x40
+#define Set_X_Address       0x80
+#define Set_V0              0x80
+#define Set_Test_Mode       0x30
+
+DigitalOut SCK_pin(D13);   // SPI clock
+DigitalOut SDI_pin(D11);   // SPI MOSI
+DigitalOut DC_pin(D10);    // Data/command selector
+DigitalOut RST_pin(D9);    // HW Reset
+DigitalOut CS_pin(D8);     // SPI chip select
+
+
+void LCDShiftWrite(unsigned char dat)
+{
+    unsigned char i;
+    unsigned char Series,Temp;
+    SCK_pin = false;
+    Series = dat;
+    for(i=0; i<8; i++) {
+        SCK_pin = false;
+        Temp=Series & 0x80;
+        if(Temp) {
+            SDI_pin = true;
+        } else {
+            SDI_pin = false;
+        }
+        SCK_pin = true;
+        Series = Series << 1;
+    }
+}
+
+
+void send_cmd(unsigned char cmd, unsigned char dat)
+{
+    DC_pin = false; //digitalWrite(RSX,LOW);
+    CS_pin = false; //digitalWrite(CSX,LOW);
+    LCDShiftWrite(cmd|dat);
+    CS_pin = true;  //digitalWrite(CSX,HIGH);
+    DC_pin = true;  //digitalWrite(RSX,HIGH);
+}
+
+void send_dat(unsigned char dat)
+{
+    DC_pin = true;  //digitalWrite(RSX,HIGH);
+    CS_pin = false; //digitalWrite(CSX,LOW);
+    LCDShiftWrite(dat);
+    CS_pin = true;  //digitalWrite(CSX,HIGH);
+}
+
+
+void LCDInit()
+{
+    RST_pin = false; //digitalWrite(RESX,LOW);
+    wait_ms(10);
+    RST_pin = true;  //digitalWrite(RESX,HIGH);
+    wait_ms(100);
+    send_cmd(Function_Set,0x01);
+    send_cmd(Set_V0,0x20);
+    send_cmd(Set_Test_Mode,0x02);
+    send_cmd(Function_Set,0x00);
+    send_cmd(Display_Control,0x04);
+}
+
+void LCD_set_XY(unsigned char x,unsigned char y)
+{
+    send_cmd(Set_X_Address,x);
+    send_cmd(Set_Y_Address,y);
+}
+
+void cls(void)
+{
+    int i;
+    send_cmd(Set_X_Address,0);
+    send_cmd(Set_Y_Address,0);
+    for(i=0; i<960; i++)
+        send_dat(0x00);
+    send_cmd(Set_X_Address,0);
+    send_cmd(Set_Y_Address,0);
+}
+
+void putch(unsigned char x, unsigned char y, unsigned int ch)
+{
+    unsigned char i;
+    send_cmd(Set_X_Address,x);
+    send_cmd(Set_Y_Address,y);
+    for(i=0; i<5; i++)
+        send_dat(FONT[(ch-0x20)*5+i]);
+}
+
+void putstr(unsigned char x, unsigned char y, char *str)
+{
+    while(*str!=0) {
+        putch(x,y,*str++);
+        x=x+6;
+    }
+}
+
+void SHOW_BMP()
+{
+    unsigned int i,j,n=0;
+    for(i=0; i<8; i++) {
+        for(j=0; j<96; j++) {
+            send_cmd(Set_Y_Address,7-i);
+            send_cmd(Set_X_Address,j);
+            send_dat(BMP[n++]);
+        }
+    }
+}
+
+void SHOW_ICO()
+{
+    unsigned char i;
+    for(i=0; i<96; i++) {
+        send_cmd(Set_Y_Address,8);
+        send_cmd(Set_X_Address,i);
+        send_dat(0xFF);
+    }
+}
+
+void SHOW_LINE()
+{
+    unsigned int i,j;
+    const unsigned char line[8] = {
+        0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80
+    };
+    for(i=0; i<8; i++) {
+        send_cmd(Set_Y_Address,7-i);
+        for(j=0; j<8; j++) {
+            send_cmd(Set_X_Address,j+8*i);
+            send_dat(line[j]);
+        }
+    }
+}
+
+int main()
+{
+
+    LCDInit();
+
+
+    while(1) {
+        SHOW_ICO();
+        putstr(30,5,"ST7585");
+        putstr(15,3,"96*64 GLCD");
+        putstr(10,1,"ARM Mbed demo");
+        wait_ms(5000);
+        cls();
+        SHOW_LINE();
+        wait_ms(5000);
+        cls();
+
+        SHOW_BMP();
+        wait_ms(5000);
+        cls();
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Thu Dec 16 12:47:42 2021 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400
\ No newline at end of file