@@ -162,7 +162,7 void bsp_FSMC_init() | |||||
162 |
|
162 | |||
163 | FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure); |
|
163 | FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure); | |
164 |
|
164 | |||
165 |
/* Enable FSMC NOR/SRAM Bank |
|
165 | /* Enable FSMC NOR/SRAM Bank1 */ | |
166 | FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE); |
|
166 | FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE); | |
167 | lcdIF0.writereg=&bsp_lcd0_write_reg; |
|
167 | lcdIF0.writereg=&bsp_lcd0_write_reg; | |
168 | lcd0.interface=&lcdIF0; |
|
168 | lcd0.interface=&lcdIF0; | |
@@ -219,6 +219,10 void bsp_lcd0_write_reg(uint32_t reg,uin | |||||
219 | { |
|
219 | { | |
220 | *lcd0_CMD=(uint16_t)reg; |
|
220 | *lcd0_CMD=(uint16_t)reg; | |
221 | *lcd0_DATA=(uint16_t)data; |
|
221 | *lcd0_DATA=(uint16_t)data; | |
|
222 | printf("Write to 0x%x 0x%x\n\r",reg,data); | |||
|
223 | *lcd0_CMD=(uint16_t)reg; | |||
|
224 | data = *lcd0_DATA; | |||
|
225 | printf("Readback to 0x%x 0x%x\n\r",reg,data); | |||
222 | } |
|
226 | } | |
223 |
|
227 | |||
224 |
|
228 |
@@ -22,16 +22,35 int main() | |||||
22 | *regtest=(int16_t)0; |
|
22 | *regtest=(int16_t)0; | |
23 | printf("LCD ID=%x\n\r",0xFFFF&(*regtest2)); |
|
23 | printf("LCD ID=%x\n\r",0xFFFF&(*regtest2)); | |
24 | *regtest=(int16_t)ILI9328_REGISTER_ENTRYMODE; |
|
24 | *regtest=(int16_t)ILI9328_REGISTER_ENTRYMODE; | |
25 | printf("ILI9328_REGISTER_ENTRYMODE=%x\n\r",0xFFFF&(*regtest2)); |
|
25 | *regtest2=(int16_t)0x1008; | |
26 | *regtest=(int16_t)0x20; |
|
26 | *regtest=(int16_t)0x20; | |
27 | *regtest2=(int16_t)0x0; |
|
27 | *regtest2=(int16_t)0x0; | |
28 | *regtest=(int16_t)0x21; |
|
28 | *regtest=(int16_t)0x21; | |
29 | *regtest2=(int16_t)0x0; |
|
29 | *regtest2=(int16_t)0x0; | |
30 | *regtest=(int16_t)0x22; |
|
30 | *regtest=(int16_t)0x22; | |
31 |
for(volatile int i=0;i< |
|
31 | for(volatile int i=0;i<32;i++) | |
32 | { |
|
32 | { | |
|
33 | *regtest=(int16_t)0x20; | |||
33 | *regtest2=(int16_t)i; |
|
34 | *regtest2=(int16_t)i; | |
|
35 | *regtest=(int16_t)0x21; | |||
|
36 | *regtest2=(int16_t)0x0; | |||
|
37 | *regtest=(int16_t)0x22; | |||
|
38 | *regtest2=(int16_t)-i; | |||
34 | } |
|
39 | } | |
|
40 | *regtest=(int16_t)ILI9328_REGISTER_ENTRYMODE; | |||
|
41 | *regtest2=(int16_t)0x1018; | |||
|
42 | ||||
|
43 | for(volatile int i=0;i<32;i++) | |||
|
44 | { | |||
|
45 | *regtest=(int16_t)0x20; | |||
|
46 | *regtest2=(int16_t)i; | |||
|
47 | *regtest=(int16_t)0x21; | |||
|
48 | *regtest2=(int16_t)0x0; | |||
|
49 | *regtest=(int16_t)0x22; | |||
|
50 | int16_t test=*regtest2; | |||
|
51 | printf("DATA@%d=%x\n\r",i,0xFFFF&(*regtest2)); | |||
|
52 | } | |||
|
53 | ||||
35 | if(-1==ina226open(&ina33VSens,i2c2,INA226_MODE_SHUNT_VOLTAGE_CONTINUOUS|INA226_AVERAGES_16|INA226_BUS_CONV_8244us|INA226_SHUNT_CONV_8244us,0,1,15,1000000)) |
|
54 | if(-1==ina226open(&ina33VSens,i2c2,INA226_MODE_SHUNT_VOLTAGE_CONTINUOUS|INA226_AVERAGES_16|INA226_BUS_CONV_8244us|INA226_SHUNT_CONV_8244us,0,1,15,1000000)) | |
36 | { |
|
55 | { | |
37 | printf("Can't open 3.3V monitor\n\r"); |
|
56 | printf("Can't open 3.3V monitor\n\r"); |
@@ -24,60 +24,61 | |||||
24 |
|
24 | |||
25 | #include <uhandle.h> |
|
25 | #include <uhandle.h> | |
26 | #include <genericLCD_Controler.h> |
|
26 | #include <genericLCD_Controler.h> | |
|
27 | #include <stdint.h> | |||
27 |
|
28 | |||
28 | extern int ili9328init(struct LCD_t* LCD); |
|
29 | extern int ili9328init(struct LCD_t* LCD); | |
29 | extern void ili9328paint_t(LCD_t* LCD,void* buffer,uint16_t Xpos,uint16_t Ypos,uint16_t Width,uint16_t Height); |
|
30 | extern void ili9328paint_t(LCD_t* LCD,void* buffer,uint16_t Xpos,uint16_t Ypos,uint16_t Width,uint16_t Height); | |
30 |
|
31 | |||
31 |
#define ILI9328_REGISTER_DRIVERCODEREAD ((uint |
|
32 | #define ILI9328_REGISTER_DRIVERCODEREAD ((uint32_t) 0x0000 ) | |
32 |
#define ILI9328_REGISTER_DRIVEROUTPUTCONTROL1 ((uint |
|
33 | #define ILI9328_REGISTER_DRIVEROUTPUTCONTROL1 ((uint32_t) 0x0001 ) | |
33 |
#define ILI9328_REGISTER_LCDDRIVINGCONTROL ((uint |
|
34 | #define ILI9328_REGISTER_LCDDRIVINGCONTROL ((uint32_t) 0x0002 ) | |
34 |
#define ILI9328_REGISTER_ENTRYMODE ((uint |
|
35 | #define ILI9328_REGISTER_ENTRYMODE ((uint32_t) 0x0003 ) | |
35 |
#define ILI9328_REGISTER_RESIZECONTROL ((uint |
|
36 | #define ILI9328_REGISTER_RESIZECONTROL ((uint32_t) 0x0004 ) | |
36 |
#define ILI9328_REGISTER_DISPLAYCONTROL1 ((uint |
|
37 | #define ILI9328_REGISTER_DISPLAYCONTROL1 ((uint32_t) 0x0007 ) | |
37 |
#define ILI9328_REGISTER_DISPLAYCONTROL2 ((uint |
|
38 | #define ILI9328_REGISTER_DISPLAYCONTROL2 ((uint32_t) 0x0008 ) | |
38 |
#define ILI9328_REGISTER_DISPLAYCONTROL3 ((uint |
|
39 | #define ILI9328_REGISTER_DISPLAYCONTROL3 ((uint32_t) 0x0009 ) | |
39 |
#define ILI9328_REGISTER_DISPLAYCONTROL4 ((uint |
|
40 | #define ILI9328_REGISTER_DISPLAYCONTROL4 ((uint32_t) 0x000A ) | |
40 |
#define ILI9328_REGISTER_RGBDISPLAYINTERFACECONTROL1 ((uint |
|
41 | #define ILI9328_REGISTER_RGBDISPLAYINTERFACECONTROL1 ((uint32_t) 0x000C ) | |
41 |
#define ILI9328_REGISTER_FRAMEMAKERPOSITION ((uint |
|
42 | #define ILI9328_REGISTER_FRAMEMAKERPOSITION ((uint32_t) 0x000D ) | |
42 |
#define ILI9328_REGISTER_RGBDISPLAYINTERFACECONTROL2 ((uint |
|
43 | #define ILI9328_REGISTER_RGBDISPLAYINTERFACECONTROL2 ((uint32_t) 0x000F ) | |
43 |
#define ILI9328_REGISTER_POWERCONTROL1 ((uint |
|
44 | #define ILI9328_REGISTER_POWERCONTROL1 ((uint32_t) 0x0010 ) | |
44 |
#define ILI9328_REGISTER_POWERCONTROL2 ((uint |
|
45 | #define ILI9328_REGISTER_POWERCONTROL2 ((uint32_t) 0x0011 ) | |
45 |
#define ILI9328_REGISTER_POWERCONTROL3 ((uint |
|
46 | #define ILI9328_REGISTER_POWERCONTROL3 ((uint32_t) 0x0012 ) | |
46 |
#define ILI9328_REGISTER_POWERCONTROL4 ((uint |
|
47 | #define ILI9328_REGISTER_POWERCONTROL4 ((uint32_t) 0x0013 ) | |
47 |
#define ILI9328_REGISTER_HORIZONTALGRAMADDRESSSET ((uint |
|
48 | #define ILI9328_REGISTER_HORIZONTALGRAMADDRESSSET ((uint32_t) 0x0020 ) | |
48 |
#define ILI9328_REGISTER_VERTICALGRAMADDRESSSET ((uint |
|
49 | #define ILI9328_REGISTER_VERTICALGRAMADDRESSSET ((uint32_t) 0x0021 ) | |
49 |
#define ILI9328_REGISTER_WRITEDATATOGRAM ((uint |
|
50 | #define ILI9328_REGISTER_WRITEDATATOGRAM ((uint32_t) 0x0022 ) | |
50 |
#define ILI9328_REGISTER_POWERCONTROL7 ((uint |
|
51 | #define ILI9328_REGISTER_POWERCONTROL7 ((uint32_t) 0x0029 ) | |
51 |
#define ILI9328_REGISTER_FRAMERATEANDCOLORCONTROL ((uint |
|
52 | #define ILI9328_REGISTER_FRAMERATEANDCOLORCONTROL ((uint32_t) 0x002B ) | |
52 |
#define ILI9328_REGISTER_GAMMACONTROL1 ((uint |
|
53 | #define ILI9328_REGISTER_GAMMACONTROL1 ((uint32_t) 0x0030 ) | |
53 |
#define ILI9328_REGISTER_GAMMACONTROL2 ((uint |
|
54 | #define ILI9328_REGISTER_GAMMACONTROL2 ((uint32_t) 0x0031 ) | |
54 |
#define ILI9328_REGISTER_GAMMACONTROL3 ((uint |
|
55 | #define ILI9328_REGISTER_GAMMACONTROL3 ((uint32_t) 0x0032 ) | |
55 |
#define ILI9328_REGISTER_GAMMACONTROL4 ((uint |
|
56 | #define ILI9328_REGISTER_GAMMACONTROL4 ((uint32_t) 0x0035 ) | |
56 |
#define ILI9328_REGISTER_GAMMACONTROL5 ((uint |
|
57 | #define ILI9328_REGISTER_GAMMACONTROL5 ((uint32_t) 0x0036 ) | |
57 |
#define ILI9328_REGISTER_GAMMACONTROL6 ((uint |
|
58 | #define ILI9328_REGISTER_GAMMACONTROL6 ((uint32_t) 0x0037 ) | |
58 |
#define ILI9328_REGISTER_GAMMACONTROL7 ((uint |
|
59 | #define ILI9328_REGISTER_GAMMACONTROL7 ((uint32_t) 0x0038 ) | |
59 |
#define ILI9328_REGISTER_GAMMACONTROL8 ((uint |
|
60 | #define ILI9328_REGISTER_GAMMACONTROL8 ((uint32_t) 0x0039 ) | |
60 |
#define ILI9328_REGISTER_GAMMACONTROL9 ((uint |
|
61 | #define ILI9328_REGISTER_GAMMACONTROL9 ((uint32_t) 0x003C ) | |
61 |
#define ILI9328_REGISTER_GAMMACONTROL10 ((uint |
|
62 | #define ILI9328_REGISTER_GAMMACONTROL10 ((uint32_t) 0x003D ) | |
62 |
#define ILI9328_REGISTER_HORIZONTALADDRESSSTARTPOSITION ((uint |
|
63 | #define ILI9328_REGISTER_HORIZONTALADDRESSSTARTPOSITION ((uint32_t) 0x0050 ) | |
63 |
#define ILI9328_REGISTER_HORIZONTALADDRESSENDPOSITION ((uint |
|
64 | #define ILI9328_REGISTER_HORIZONTALADDRESSENDPOSITION ((uint32_t) 0x0051 ) | |
64 |
#define ILI9328_REGISTER_VERTICALADDRESSSTARTPOSITION ((uint |
|
65 | #define ILI9328_REGISTER_VERTICALADDRESSSTARTPOSITION ((uint32_t) 0x0052 ) | |
65 |
#define ILI9328_REGISTER_VERTICALADDRESSENDPOSITION ((uint |
|
66 | #define ILI9328_REGISTER_VERTICALADDRESSENDPOSITION ((uint32_t) 0x0053 ) | |
66 |
#define ILI9328_REGISTER_DRIVEROUTPUTCONTROL2 ((uint |
|
67 | #define ILI9328_REGISTER_DRIVEROUTPUTCONTROL2 ((uint32_t) 0x0060 ) | |
67 |
#define ILI9328_REGISTER_BASEIMAGEDISPLAYCONTROL ((uint |
|
68 | #define ILI9328_REGISTER_BASEIMAGEDISPLAYCONTROL ((uint32_t) 0x0061 ) | |
68 |
#define ILI9328_REGISTER_VERTICALSCROLLCONTROL ((uint |
|
69 | #define ILI9328_REGISTER_VERTICALSCROLLCONTROL ((uint32_t) 0x006A ) | |
69 |
#define ILI9328_REGISTER_PARTIALIMAGE1DISPLAYPOSITION ((uint |
|
70 | #define ILI9328_REGISTER_PARTIALIMAGE1DISPLAYPOSITION ((uint32_t) 0x0080 ) | |
70 |
#define ILI9328_REGISTER_PARTIALIMAGE1AREASTARTLINE ((uint |
|
71 | #define ILI9328_REGISTER_PARTIALIMAGE1AREASTARTLINE ((uint32_t) 0x0081 ) | |
71 |
#define ILI9328_REGISTER_PARTIALIMAGE1AREAENDLINE ((uint |
|
72 | #define ILI9328_REGISTER_PARTIALIMAGE1AREAENDLINE ((uint32_t) 0x0082 ) | |
72 |
#define ILI9328_REGISTER_PARTIALIMAGE2DISPLAYPOSITION ((uint |
|
73 | #define ILI9328_REGISTER_PARTIALIMAGE2DISPLAYPOSITION ((uint32_t) 0x0083 ) | |
73 |
#define ILI9328_REGISTER_PARTIALIMAGE2AREASTARTLINE ((uint |
|
74 | #define ILI9328_REGISTER_PARTIALIMAGE2AREASTARTLINE ((uint32_t) 0x0084 ) | |
74 |
#define ILI9328_REGISTER_PARTIALIMAGE2AREAENDLINE ((uint |
|
75 | #define ILI9328_REGISTER_PARTIALIMAGE2AREAENDLINE ((uint32_t) 0x0085 ) | |
75 |
#define ILI9328_REGISTER_PANELINTERFACECONTROL1 ((uint |
|
76 | #define ILI9328_REGISTER_PANELINTERFACECONTROL1 ((uint32_t) 0x0090 ) | |
76 |
#define ILI9328_REGISTER_PANELINTERFACECONTROL2 ((uint |
|
77 | #define ILI9328_REGISTER_PANELINTERFACECONTROL2 ((uint32_t) 0x0092 ) | |
77 |
#define ILI9328_REGISTER_PANELINTERFACECONTROL4 ((uint |
|
78 | #define ILI9328_REGISTER_PANELINTERFACECONTROL4 ((uint32_t) 0x0095 ) | |
78 |
#define ILI9328_REGISTER_OTPVCMPROGRAMMINGCONTROL ((uint |
|
79 | #define ILI9328_REGISTER_OTPVCMPROGRAMMINGCONTROL ((uint32_t) 0x00A1 ) | |
79 |
#define ILI9328_REGISTER_OTPVCMSTATUSANDENABLE ((uint |
|
80 | #define ILI9328_REGISTER_OTPVCMSTATUSANDENABLE ((uint32_t) 0x00A2 ) | |
80 |
#define ILI9328_REGISTER_OTPPROGRAMMINGIDKEY ((uint |
|
81 | #define ILI9328_REGISTER_OTPPROGRAMMINGIDKEY ((uint32_t) 0x00A5 ) | |
81 |
|
82 | |||
82 |
|
83 | |||
83 | #endif |
|
84 | #endif |
@@ -51,15 +51,15 int ili9328init(struct LCD_t* LCD) | |||||
51 | LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL2, 0x0007); // Power Control 2 (R11h) |
|
51 | LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL2, 0x0007); // Power Control 2 (R11h) | |
52 | LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL3, 0x0000); // Power Control 3 (R12h) |
|
52 | LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL3, 0x0000); // Power Control 3 (R12h) | |
53 | LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL4, 0x0000); // Power Control 4 (R13h) |
|
53 | LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL4, 0x0000); // Power Control 4 (R13h) | |
54 |
_delay_(1000000 |
|
54 | _delay_(1000000); | |
55 | LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL1, 0x14B0); // Power Control 1 (R10h) |
|
55 | LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL1, 0x14B0); // Power Control 1 (R10h) | |
56 |
_delay_(500000 |
|
56 | _delay_(500000); | |
57 | LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL2, 0x0007); // Power Control 2 (R11h) |
|
57 | LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL2, 0x0007); // Power Control 2 (R11h) | |
58 |
_delay_(500000 |
|
58 | _delay_(500000); | |
59 | LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL3, 0x008E); // Power Control 3 (R12h) |
|
59 | LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL3, 0x008E); // Power Control 3 (R12h) | |
60 | LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL4, 0x0C00); // Power Control 4 (R13h) |
|
60 | LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL4, 0x0C00); // Power Control 4 (R13h) | |
61 | LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL7, 0x0015); // NVM read data 2 (R29h) |
|
61 | LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL7, 0x0015); // NVM read data 2 (R29h) | |
62 |
_delay_(500000 |
|
62 | _delay_(500000); | |
63 | LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL1, 0x0000); // Gamma Control 1 |
|
63 | LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL1, 0x0000); // Gamma Control 1 | |
64 | LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL2, 0x0107); // Gamma Control 2 |
|
64 | LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL2, 0x0107); // Gamma Control 2 | |
65 | LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL3, 0x0000); // Gamma Control 3 |
|
65 | LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL3, 0x0000); // Gamma Control 3 | |
@@ -79,7 +79,7 int ili9328init(struct LCD_t* LCD) | |||||
79 | LCD->interface->writereg(ILI9328_REGISTER_PANELINTERFACECONTROL1, 0X0010); // Panel Interface Control 1 (R90h) |
|
79 | LCD->interface->writereg(ILI9328_REGISTER_PANELINTERFACECONTROL1, 0X0010); // Panel Interface Control 1 (R90h) | |
80 | // Display On |
|
80 | // Display On | |
81 | LCD->interface->writereg(ILI9328_REGISTER_DISPLAYCONTROL1, 0x0133); // Display Control (R07h) |
|
81 | LCD->interface->writereg(ILI9328_REGISTER_DISPLAYCONTROL1, 0x0133); // Display Control (R07h) | |
82 |
_delay_(500000 |
|
82 | _delay_(500000); | |
83 | LCD->interface->writereg(ILI9328_REGISTER_ENTRYMODE, 0x1030); |
|
83 | LCD->interface->writereg(ILI9328_REGISTER_ENTRYMODE, 0x1030); | |
84 | LCD->interface->writereg(ILI9328_REGISTER_DRIVEROUTPUTCONTROL1, 0x0100); |
|
84 | LCD->interface->writereg(ILI9328_REGISTER_DRIVEROUTPUTCONTROL1, 0x0100); | |
85 | //ili9328WriteCmd(ILI9328_REGISTER_WRITEDATATOGRAM); |
|
85 | //ili9328WriteCmd(ILI9328_REGISTER_WRITEDATATOGRAM); |
General Comments 0
You need to be logged in to leave comments.
Login now