Update

Dependencies:   mbed mbed-rtos X_NUCLEO_IHM02A1

Committer:
scherfa2
Date:
Thu May 16 20:10:32 2019 +0000
Revision:
42:0aaa3b282b6e
Parent:
33:de144094bdd1
Update

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hagenrap 33:de144094bdd1 1 #include "SETUP.h"
hagenrap 33:de144094bdd1 2
scherfa2 30:e464b2bb2376 3
hagenrap 33:de144094bdd1 4 DigitalOut RS(DISP_RS);
hagenrap 33:de144094bdd1 5 DigitalOut RW(DISP_RW);
hagenrap 33:de144094bdd1 6 DigitalOut E(DISP_E);
hagenrap 33:de144094bdd1 7 DigitalOut bit0(DISP_B0);
hagenrap 33:de144094bdd1 8 DigitalOut bit1(DISP_B1);
hagenrap 33:de144094bdd1 9 DigitalOut bit2(DISP_B2);
hagenrap 33:de144094bdd1 10 DigitalOut bit3(DISP_B3);
hagenrap 33:de144094bdd1 11 DigitalOut bit4(DISP_B4);
hagenrap 33:de144094bdd1 12 DigitalOut bit5(DISP_B5);
hagenrap 33:de144094bdd1 13 DigitalOut bit6(DISP_B6);
hagenrap 33:de144094bdd1 14 DigitalOut bit7(DISP_B7);
scherfa2 30:e464b2bb2376 15
scherfa2 30:e464b2bb2376 16 /**************************************************************
scherfa2 30:e464b2bb2376 17 Sendebefehls-Funktion für das Display MIDAS
scherfa2 30:e464b2bb2376 18 E=Enable, RS= Register Select Signal, RW= Data Read/Wirte
scherfa2 30:e464b2bb2376 19 Siehe MIDAS Datasheet 6.3.1 Write Mode Timing Diagramm
scherfa2 30:e464b2bb2376 20 **************************************************************/
scherfa2 30:e464b2bb2376 21 void DisplaySendeBefehl(unsigned char befehl)
scherfa2 30:e464b2bb2376 22 {
scherfa2 30:e464b2bb2376 23 RW=0;
scherfa2 30:e464b2bb2376 24 E=0;
scherfa2 30:e464b2bb2376 25 RS=0;
scherfa2 30:e464b2bb2376 26 wait_us(1); //delay>0
scherfa2 30:e464b2bb2376 27 E=1;
scherfa2 30:e464b2bb2376 28 wait_ms(1);
scherfa2 30:e464b2bb2376 29 bit0= (befehl>>0)&0x01;
scherfa2 30:e464b2bb2376 30 bit1= (befehl>>1)&0x01;
scherfa2 30:e464b2bb2376 31 bit2= (befehl>>2)&0x01;
scherfa2 30:e464b2bb2376 32 bit3= (befehl>>3)&0x01;
scherfa2 30:e464b2bb2376 33 bit4= (befehl>>4)&0x01;
scherfa2 30:e464b2bb2376 34 bit5= (befehl>>5)&0x01;
scherfa2 30:e464b2bb2376 35 bit6= (befehl>>6)&0x01;
scherfa2 30:e464b2bb2376 36 bit7= (befehl>>7)&0x01;
scherfa2 30:e464b2bb2376 37 wait_ms(1);
scherfa2 30:e464b2bb2376 38 E=0;
scherfa2 30:e464b2bb2376 39 wait_ms(1);
scherfa2 30:e464b2bb2376 40 RS=0;
scherfa2 30:e464b2bb2376 41 RW=0;
scherfa2 30:e464b2bb2376 42 bit0=0;
scherfa2 30:e464b2bb2376 43 bit1=0;
scherfa2 30:e464b2bb2376 44 bit2=0;
scherfa2 30:e464b2bb2376 45 bit3=0;
scherfa2 30:e464b2bb2376 46 bit4=0;
scherfa2 30:e464b2bb2376 47 bit5=0;
scherfa2 30:e464b2bb2376 48 bit6=0;
scherfa2 30:e464b2bb2376 49 bit7=0;
scherfa2 30:e464b2bb2376 50 wait_ms(1);
scherfa2 42:0aaa3b282b6e 51
scherfa2 30:e464b2bb2376 52 }
scherfa2 30:e464b2bb2376 53 /**************************************************************
scherfa2 30:e464b2bb2376 54 Sende-Zeichen-Funktion für das Display Midas
scherfa2 30:e464b2bb2376 55 Es können ASCI basierende Zeichen gesendet werden wie 'A' etc.
scherfa2 30:e464b2bb2376 56 **************************************************************/
scherfa2 30:e464b2bb2376 57 void DisplaySendeZeichen(unsigned char Zeichen)
scherfa2 30:e464b2bb2376 58 {
scherfa2 30:e464b2bb2376 59 RW=0;
scherfa2 30:e464b2bb2376 60 E=0;
scherfa2 30:e464b2bb2376 61 RS=0;
scherfa2 30:e464b2bb2376 62 RS=1;
scherfa2 30:e464b2bb2376 63 wait_ms(1);
scherfa2 30:e464b2bb2376 64 E=1;
scherfa2 30:e464b2bb2376 65 wait_ms(1);
scherfa2 30:e464b2bb2376 66 bit0= (Zeichen>>0)&0x01;
scherfa2 30:e464b2bb2376 67 bit1= (Zeichen>>1)&0x01;
scherfa2 30:e464b2bb2376 68 bit2= (Zeichen>>2)&0x01;
scherfa2 30:e464b2bb2376 69 bit3= (Zeichen>>3)&0x01;
scherfa2 30:e464b2bb2376 70 bit4= (Zeichen>>4)&0x01;
scherfa2 30:e464b2bb2376 71 bit5= (Zeichen>>5)&0x01;
scherfa2 30:e464b2bb2376 72 bit6= (Zeichen>>6)&0x01;
scherfa2 30:e464b2bb2376 73 bit7= (Zeichen>>7)&0x01;
scherfa2 30:e464b2bb2376 74 wait_ms(1);
scherfa2 30:e464b2bb2376 75 E=0;
scherfa2 30:e464b2bb2376 76 wait_ms(1);
scherfa2 30:e464b2bb2376 77 RS=0;
scherfa2 30:e464b2bb2376 78 RW=0;
scherfa2 30:e464b2bb2376 79 bit0=0;
scherfa2 30:e464b2bb2376 80 bit1=0;
scherfa2 30:e464b2bb2376 81 bit2=0;
scherfa2 30:e464b2bb2376 82 bit3=0;
scherfa2 30:e464b2bb2376 83 bit4=0;
scherfa2 30:e464b2bb2376 84 bit5=0;
scherfa2 30:e464b2bb2376 85 bit6=0;
scherfa2 30:e464b2bb2376 86 bit7=0;
scherfa2 30:e464b2bb2376 87 wait_ms(1);
scherfa2 42:0aaa3b282b6e 88
scherfa2 30:e464b2bb2376 89 }
scherfa2 30:e464b2bb2376 90
scherfa2 30:e464b2bb2376 91 /**************************************************************
scherfa2 30:e464b2bb2376 92 Sende-String-Funktion für das Display Midas
scherfa2 30:e464b2bb2376 93 Es können ASCI basierende Strings gesendet werden wie "ABC" etc.
scherfa2 30:e464b2bb2376 94 Der Sendestring ist auf 20 Zeichen beschränkt, da eine Display-
scherfa2 30:e464b2bb2376 95 Lein ebenfalls nur 20 Felder besitzt.
scherfa2 30:e464b2bb2376 96 **************************************************************/
scherfa2 30:e464b2bb2376 97 void DisplaySendeString(char *String)
scherfa2 30:e464b2bb2376 98 {
scherfa2 30:e464b2bb2376 99 int x;
scherfa2 30:e464b2bb2376 100 for(x = 0; (x < 20) && (*String != 0); x++) // solange ein Zeichen=0 ist
scherfa2 30:e464b2bb2376 101 {
scherfa2 30:e464b2bb2376 102 DisplaySendeZeichen(*String); // Zeichen durch Pointer
scherfa2 30:e464b2bb2376 103 String++; // Pointer auf nächstes Zeichen
scherfa2 30:e464b2bb2376 104 }
scherfa2 30:e464b2bb2376 105 }
scherfa2 30:e464b2bb2376 106
scherfa2 30:e464b2bb2376 107 /**************************************************************
scherfa2 30:e464b2bb2376 108 Midas Display Initalisierungs-Fuktion
scherfa2 30:e464b2bb2376 109 **************************************************************/
scherfa2 30:e464b2bb2376 110 void DisplayInit()
scherfa2 30:e464b2bb2376 111 {
scherfa2 30:e464b2bb2376 112 wait_ms(40);
scherfa2 30:e464b2bb2376 113 DisplaySendeBefehl(0b00111100); //
scherfa2 30:e464b2bb2376 114 wait_ms(1);
scherfa2 30:e464b2bb2376 115 DisplaySendeBefehl(0b00111100);
scherfa2 30:e464b2bb2376 116 wait_ms(1);
scherfa2 30:e464b2bb2376 117 DisplaySendeBefehl(0b00001000);
scherfa2 30:e464b2bb2376 118 wait_ms(1);
scherfa2 30:e464b2bb2376 119 DisplaySendeBefehl(0b00000001);
scherfa2 30:e464b2bb2376 120 wait_ms(3);
scherfa2 42:0aaa3b282b6e 121 DisplaySendeBefehl(0b00000110);
scherfa2 30:e464b2bb2376 122 }
scherfa2 30:e464b2bb2376 123
scherfa2 30:e464b2bb2376 124 /**************************************************************
scherfa2 30:e464b2bb2376 125 Gehe zu X, Y -Funktion für das Display.
scherfa2 30:e464b2bb2376 126 X ist die Horizontale, Y die Vertikale
scherfa2 30:e464b2bb2376 127 X muss 20<=x>0 sein / Y muss 4<=y>0 sein
scherfa2 30:e464b2bb2376 128
scherfa2 30:e464b2bb2376 129 Zeilen des Displays wie folgt:
scherfa2 30:e464b2bb2376 130 y
scherfa2 30:e464b2bb2376 131 1. 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 x
scherfa2 30:e464b2bb2376 132 3. 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 x
scherfa2 30:e464b2bb2376 133 2. 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 x
scherfa2 30:e464b2bb2376 134 4. 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 x
scherfa2 30:e464b2bb2376 135 **************************************************************/
scherfa2 30:e464b2bb2376 136 void gotoxy(unsigned char x, unsigned char y)
scherfa2 30:e464b2bb2376 137 {
scherfa2 30:e464b2bb2376 138 unsigned char data = 0;
scherfa2 30:e464b2bb2376 139
scherfa2 30:e464b2bb2376 140 switch (y)
scherfa2 30:e464b2bb2376 141 {
scherfa2 30:e464b2bb2376 142 case 1:
scherfa2 30:e464b2bb2376 143 data = 0b10000000 | (0x00+x-1); // +0 (0x00)
scherfa2 30:e464b2bb2376 144 break;
scherfa2 30:e464b2bb2376 145
scherfa2 30:e464b2bb2376 146 case 2: //
scherfa2 30:e464b2bb2376 147 data = 0b10000000 | (0x14+x-1); // +20 (0x14)
scherfa2 30:e464b2bb2376 148 break;
scherfa2 30:e464b2bb2376 149
scherfa2 30:e464b2bb2376 150 case 3:
scherfa2 30:e464b2bb2376 151 data = 0b10000000 | (0x40+x-1); // +64 (0x40)
scherfa2 30:e464b2bb2376 152 break;
scherfa2 30:e464b2bb2376 153
scherfa2 30:e464b2bb2376 154 case 4:
scherfa2 30:e464b2bb2376 155 data = 0b10000000 | (0x54+x-1); // +84 (0x54)
scherfa2 30:e464b2bb2376 156 break;
scherfa2 30:e464b2bb2376 157
scherfa2 30:e464b2bb2376 158 }
scherfa2 30:e464b2bb2376 159 DisplaySendeBefehl(data); // Berechneter Übergabeparameter data
scherfa2 30:e464b2bb2376 160 }
scherfa2 30:e464b2bb2376 161
scherfa2 30:e464b2bb2376 162
scherfa2 30:e464b2bb2376 163