annotate Discovery/Src/display.c @ 240:625d20070261 div-fixes-5

Improvement SPI stability/recoverability The core part of this commit comes from careful code reading. The core is the swap of Scheduler_Request_sync_with_SPI(SPI_SYNC_METHOD_SOFT) and SPI_Start_single_TxRx_with_Master(). This code is sitting in an if-clause that is triggered on SPI comms failure. Instead of blindly trying to communicate again (which will very likely fail again), first try to reset the comms link, and then try to communicate again. That simply makes more sense in this case. This is heavily tested, on 2 simple dives, and 5 very long deco schedules from the simulator (10+ hour deco's), and a lot of small simulated dives (upto 2h runtime). Of all these tests, only one long session failed after 9 out of 11h runtime. Analyzing that one failure, suggests that the RTE is looping in some error handler, which (obviously) results in a SPI comms failure as a result. I consider this not part of this change. Additionally, some more cleanup is done in this code. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
author Jan Mulder <jlmulder@xs4all.nl>
date Mon, 08 Apr 2019 11:49:13 +0200
parents 5f11787b4f42
children 5ca177d2df5d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
2 #include "stm32f4xx_hal.h" /* for HAL_Delay() */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
3 #include "ostc.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
4 #include "display.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
5
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
6 #define ENABLE_EXTENDED_COMMANDS 0xB9
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
7 #define SET_POWER 0xB1
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
8 #define SLEEP_OUT 0x11
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
9 #define DISPLAY_INVERSION_OFF 0x20
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
10 #define MEMORY_ACCESS_ONTROL 0x36
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
11 #define INTERFACE_PIXEL_FORMAT 0x3A
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
12 #define SET_RGB_INTERFACE_RELATED 0xB3
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
13 #define SET_DISPLAY_WAVEFORM 0xB4
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
14 #define SET_PANEL 0xCC
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
15 #define SET_GAMMA_CURVE_RELATED 0xE0
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
16 #define DISPLAY_ON 0x29
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
17 #define DISPLAY_OFF 0x28
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
18 #define SLEEP_IN 0x10
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
19
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
20
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
21 static void Display_Error_Handler(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
22
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
23 void display_power_on__1_of_2__pre_RGB(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
24 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
25 /* reset system */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
26 HAL_GPIO_WritePin(DISPLAY_CSB_GPIO_PORT,DISPLAY_CSB_PIN,GPIO_PIN_SET); // chip select
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
27
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
28 HAL_GPIO_WritePin(DISPLAY_RESETB_GPIO_PORT,DISPLAY_RESETB_PIN,GPIO_PIN_RESET);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
29 HAL_Delay(10);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
30 HAL_GPIO_WritePin(DISPLAY_RESETB_GPIO_PORT,DISPLAY_RESETB_PIN,GPIO_PIN_SET);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
31 HAL_Delay(10);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
32
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
33 /* RGB signals should be now for 2 frames or more (datasheet) */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
34 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
35
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
36
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
37 void send(uint8_t *pData, uint16_t inputlength)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
38 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
39 HAL_GPIO_WritePin(DISPLAY_CSB_GPIO_PORT,DISPLAY_CSB_PIN,GPIO_PIN_RESET); // chip select
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
40
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
41 if(HAL_SPI_Transmit(&hspiDisplay,(uint8_t*)pData, inputlength, 10000) != HAL_OK)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
42 Display_Error_Handler();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
43
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
44 while (HAL_SPI_GetState(&hspiDisplay) != HAL_SPI_STATE_READY)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
45 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
46 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
47 HAL_GPIO_WritePin(DISPLAY_CSB_GPIO_PORT,DISPLAY_CSB_PIN,GPIO_PIN_SET); // chip select
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
48 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
49
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
50
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
51 uint16_t convert8to9to8(uint8_t *pInput, uint8_t *pOutput,uint16_t inputlength)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
52 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
53 uint16_t outputlength;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
54 uint8_t readbit = 0x80;//0b1000000;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
55 uint8_t writebit = 0x40;//0b0100000;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
56 uint16_t i,j,k;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
57
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
58 outputlength = ((inputlength+7)/8)*9;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
59
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
60 for(i=0;i<outputlength;i++)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
61 pOutput[i] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
62
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
63 k = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
64 for(i=0;i<inputlength;i++)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
65 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
66 if(i != 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
67 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
68 pOutput[k] |= writebit; // 9. bit
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
69 writebit = writebit >> 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
70 if(writebit == 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
71 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
72 writebit = 0x80;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
73 k++;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
74 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
75 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
76 for(j=0;j<8;j++)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
77 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
78 if((pInput[i] & readbit) != 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
79 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
80 pOutput[k] |= writebit;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
81 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
82 readbit = readbit >> 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
83 if(readbit == 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
84 readbit = 0x80;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
85 writebit = writebit >> 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
86 if(writebit == 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
87 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
88 writebit = 0x80;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
89 k++;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
90 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
91 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
92 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
93 return outputlength;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
94 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
95
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
96 void display_power_on__2_of_2__post_RGB(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
97 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
98 uint8_t aTxBuffer[32];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
99 uint8_t bTxBuffer[36];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
100 uint16_t i,length;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
101
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
102 for(i=0;i<32;i++)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
103 aTxBuffer[i] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
104 for(i=0;i<36;i++)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
105 bTxBuffer[i] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
106
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
107 aTxBuffer[0] = ENABLE_EXTENDED_COMMANDS;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
108 aTxBuffer[1] = 0xFF;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
109 aTxBuffer[2] = 0x83;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
110 aTxBuffer[3] = 0x63;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
111 length = convert8to9to8((uint8_t*)aTxBuffer,(uint8_t*)bTxBuffer,4);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
112 send((uint8_t*)bTxBuffer, length);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
113
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
114 aTxBuffer[0] = SET_POWER;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
115 aTxBuffer[1] = 0x81;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
116 aTxBuffer[2] = 0x24;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
117 aTxBuffer[3] = 0x04;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
118 aTxBuffer[4] = 0x02;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
119 aTxBuffer[5] = 0x02;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
120 aTxBuffer[6] = 0x03;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
121 aTxBuffer[7] = 0x10;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
122 aTxBuffer[8] = 0x10;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
123 aTxBuffer[9] = 0x34;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
124 aTxBuffer[10] = 0x3C;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
125 aTxBuffer[11] = 0x3F;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
126 aTxBuffer[12] = 0x3F;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
127 length = convert8to9to8((uint8_t*)aTxBuffer,(uint8_t*)bTxBuffer,13);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
128 send((uint8_t*)bTxBuffer, length);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
129
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
130 aTxBuffer[0] = SLEEP_OUT;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
131 length = convert8to9to8((uint8_t*)aTxBuffer,(uint8_t*)bTxBuffer,1);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
132 send((uint8_t*)bTxBuffer, length);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
133 HAL_Delay(5+1);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
134
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
135 aTxBuffer[0] = DISPLAY_INVERSION_OFF;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
136 length = convert8to9to8((uint8_t*)aTxBuffer,(uint8_t*)bTxBuffer,1);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
137 send((uint8_t*)bTxBuffer, length);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
138
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
139 aTxBuffer[0] = MEMORY_ACCESS_ONTROL;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
140 aTxBuffer[1] = 0x00;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
141 length = convert8to9to8((uint8_t*)aTxBuffer,(uint8_t*)bTxBuffer,2);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
142 send((uint8_t*)bTxBuffer, length);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
143
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
144 aTxBuffer[0] = INTERFACE_PIXEL_FORMAT;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
145 aTxBuffer[1] = 0x70;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
146 length = convert8to9to8((uint8_t*)aTxBuffer,(uint8_t*)bTxBuffer,2);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
147 send((uint8_t*)bTxBuffer, length);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
148 HAL_Delay(120+20);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
149
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
150 aTxBuffer[0] = SET_POWER;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
151 aTxBuffer[1] = 0x78;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
152 aTxBuffer[2] = 0x24;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
153 aTxBuffer[3] = 0x04,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
154 aTxBuffer[4] = 0x02;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
155 aTxBuffer[5] = 0x02;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
156 aTxBuffer[6] = 0x03;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
157 aTxBuffer[7] = 0x10;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
158 aTxBuffer[8] = 0x10;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
159 aTxBuffer[9] = 0x34;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
160 aTxBuffer[10] = 0x3C;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
161 aTxBuffer[11] = 0x3F;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
162 aTxBuffer[12] = 0x3F;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
163 length = convert8to9to8((uint8_t*)aTxBuffer,(uint8_t*)bTxBuffer,13);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
164 send((uint8_t*)bTxBuffer, length);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
165
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
166 aTxBuffer[0] = SET_RGB_INTERFACE_RELATED;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
167 aTxBuffer[1] = 0x01;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
168 length = convert8to9to8((uint8_t*)aTxBuffer,(uint8_t*)bTxBuffer,2);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
169 send((uint8_t*)bTxBuffer, length);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
170
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
171 aTxBuffer[0] = SET_DISPLAY_WAVEFORM;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
172 aTxBuffer[1] = 0x00;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
173 aTxBuffer[2] = 0x08;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
174 aTxBuffer[3] = 0x56;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
175 aTxBuffer[4] = 0x07;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
176 aTxBuffer[5] = 0x01;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
177 aTxBuffer[6] = 0x01;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
178 aTxBuffer[7] = 0x4D;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
179 aTxBuffer[8] = 0x01;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
180 aTxBuffer[9] = 0x42;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
181 length = convert8to9to8((uint8_t*)aTxBuffer,(uint8_t*)bTxBuffer,10);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
182 send((uint8_t*)bTxBuffer, length);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
183
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
184 aTxBuffer[0] = SET_PANEL;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
185 aTxBuffer[1] = 0x0B;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
186 length = convert8to9to8((uint8_t*)aTxBuffer,(uint8_t*)bTxBuffer,2);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
187 send((uint8_t*)bTxBuffer, length);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
188
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
189 aTxBuffer[0] = SET_GAMMA_CURVE_RELATED;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
190 aTxBuffer[1] = 0x01;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
191 aTxBuffer[2] = 0x48;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
192 aTxBuffer[3] = 0x4D;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
193 aTxBuffer[4] = 0x4E;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
194 aTxBuffer[5] = 0x58;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
195 aTxBuffer[6] = 0xF6;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
196 aTxBuffer[7] = 0x0B;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
197 aTxBuffer[8] = 0x4E;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
198 aTxBuffer[9] = 0x12;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
199 aTxBuffer[10] = 0xD5;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
200 aTxBuffer[11] = 0x15;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
201 aTxBuffer[12] = 0x95;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
202 aTxBuffer[13] = 0x55;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
203 aTxBuffer[14] = 0x8E;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
204 aTxBuffer[15] = 0x11;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
205 aTxBuffer[16] = 0x01;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
206 aTxBuffer[17] = 0x48;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
207 aTxBuffer[18] = 0x4D;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
208 aTxBuffer[19] = 0x55;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
209 aTxBuffer[20] = 0x5F;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
210 aTxBuffer[21] = 0xFD;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
211 aTxBuffer[22] = 0x0A;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
212 aTxBuffer[23] = 0x4E;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
213 aTxBuffer[24] = 0x51;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
214 aTxBuffer[25] = 0xD3;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
215 aTxBuffer[26] = 0x17;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
216 aTxBuffer[27] = 0x95;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
217 aTxBuffer[28] = 0x96;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
218 aTxBuffer[29] = 0x4E;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
219 aTxBuffer[30] = 0x11;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
220 length = convert8to9to8((uint8_t*)aTxBuffer,(uint8_t*)bTxBuffer,31);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
221 send((uint8_t*)bTxBuffer, length);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
222 HAL_Delay(5+1);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
223
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
224 aTxBuffer[0] = DISPLAY_ON;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
225 length = convert8to9to8((uint8_t*)aTxBuffer,(uint8_t*)bTxBuffer,1);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
226 send((uint8_t*)bTxBuffer, length);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
227 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
228
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
229
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
230 void display_power_off(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
231 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
232 uint8_t aTxBuffer[1];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
233 uint8_t bTxBuffer[9];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
234 uint16_t i,length;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
235
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
236 for(i=0;i<9;i++)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
237 bTxBuffer[i] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
238
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
239 aTxBuffer[0] = DISPLAY_OFF;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
240 length = convert8to9to8((uint8_t*)aTxBuffer,(uint8_t*)bTxBuffer,1);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
241 send((uint8_t*)bTxBuffer, length);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
242 HAL_Delay(5);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
243
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
244 aTxBuffer[0] = SLEEP_IN;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
245 length = convert8to9to8((uint8_t*)aTxBuffer,(uint8_t*)bTxBuffer,1);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
246 send((uint8_t*)bTxBuffer, length);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
247 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
248
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
249
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
250 void display_sleep(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
251 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
252 uint8_t aTxBuffer[1];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
253 uint8_t bTxBuffer[9];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
254 uint16_t i,length;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
255
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
256 for(i=0;i<9;i++)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
257 bTxBuffer[i] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
258
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
259 aTxBuffer[0] = SLEEP_IN;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
260 length = convert8to9to8((uint8_t*)aTxBuffer,(uint8_t*)bTxBuffer,1);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
261 send((uint8_t*)bTxBuffer, length);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
262 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
263
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
264
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
265 void display_sleep_release(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
266 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
267 uint8_t aTxBuffer[1];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
268 uint8_t bTxBuffer[9];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
269 uint16_t i,length;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
270
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
271 for(i=0;i<9;i++)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
272 bTxBuffer[i] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
273
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
274 aTxBuffer[0] = SLEEP_OUT;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
275 length = convert8to9to8((uint8_t*)aTxBuffer,(uint8_t*)bTxBuffer,1);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
276 send((uint8_t*)bTxBuffer, length);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
277 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
278
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
279 static void Display_Error_Handler(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
280 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
281 while(1)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
282 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
283 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
284 }