:) Sure, this is the init code that worked for me with the HX8347-D and the Mikromedia for Atmega (M1280) module.
[code:1:4fe66975f5]'**
' * @brief Configures sets of TFT controllers register to work with parameters
' * assigneg in TFT_Init. Also it resets the TFT controller.
' *
Sub Tft_reset_device
' Hold in reset
Tft_16bit_rst = 0
' Set reset pin as output
' Enable data access
Tft_16bit_rs = 1
' Set RS pin as output
' Disable LCD
Tft_16bit_cs = 1
' Set LCD CS pin as output
Tft_16bit_rd = 1
Tft_16bit_wr = 1
' Release from reset
Waitms 100
Tft_16bit_rst = 1
Waitms 100
Waitms 100
' Driving ability setting
Call Tft_16bit_set_reg(&Hea , &H00) ' PTBA[15:8]
Call Tft_16bit_set_reg(&Heb , &H20) ' PTBA[7:0]
Call Tft_16bit_set_reg(&Hec , &H0C) ' STBA[15:8]
Call Tft_16bit_set_reg(&Hed , &HC4) ' STBA[7:0]
Call Tft_16bit_set_reg(&He8 , &H40) ' OPON[7:0]
Call Tft_16bit_set_reg(&He9 , &H38) ' OPON1[7:0]
Call Tft_16bit_set_reg(&Hf1 , &H01) ' OTPS1B
Call Tft_16bit_set_reg(&Hf2 , &H10) ' GEN
Call Tft_16bit_set_reg(&H27 , &HA3)
' Gamma 2.8 setting
Call Tft_16bit_set_reg(&H40 , &H00) '
Call Tft_16bit_set_reg(&H41 , &H00) '
Call Tft_16bit_set_reg(&H42 , &H01) '
Call Tft_16bit_set_reg(&H43 , &H13) '
Call Tft_16bit_set_reg(&H44 , &H10) '
Call Tft_16bit_set_reg(&H45 , &H26) '
Call Tft_16bit_set_reg(&H46 , &H08) '
Call Tft_16bit_set_reg(&H47 , &H51) '
Call Tft_16bit_set_reg(&H48 , &H02) '
Call Tft_16bit_set_reg(&H49 , &H12) '
Call Tft_16bit_set_reg(&H4a , &H18) '
Call Tft_16bit_set_reg(&H4b , &H19) '
Call Tft_16bit_set_reg(&H4c , &H14) '
Call Tft_16bit_set_reg(&H50 , &H19) '
Call Tft_16bit_set_reg(&H51 , &H2F) '
Call Tft_16bit_set_reg(&H52 , &H2C) '
Call Tft_16bit_set_reg(&H53 , &H3E) '
Call Tft_16bit_set_reg(&H54 , &H3F) '
Call Tft_16bit_set_reg(&H55 , &H3F) '
Call Tft_16bit_set_reg(&H56 , &H2E) '
Call Tft_16bit_set_reg(&H57 , &H77) '
Call Tft_16bit_set_reg(&H58 , &H0B) '
Call Tft_16bit_set_reg(&H59 , &H06) '
Call Tft_16bit_set_reg(&H5a , &H07) '
Call Tft_16bit_set_reg(&H5b , &H0D) '
Call Tft_16bit_set_reg(&H5c , &H1D) '
Call Tft_16bit_set_reg(&H5d , &HCC) '
' Window setting
If Tft_16bit_disp_rotation = 90 Then
Call Tft_16bit_set_reg(&H04 , &H00)
Call Tft_16bit_set_reg(&H05 , &HEF)
Call Tft_16bit_set_reg(&H08 , &H01)
Call Tft_16bit_set_reg(&H09 , &H3F)
Else
Call Tft_16bit_set_reg(&H02 , &H00)
Call Tft_16bit_set_reg(&H03 , &H00)
Call Tft_16bit_set_reg(&H06 , &H00)
Call Tft_16bit_set_reg(&H07 , &H00)
'-----
Call Tft_16bit_set_reg(&H04 , &H01)
Call Tft_16bit_set_reg(&H05 , &H3F)
Call Tft_16bit_set_reg(&H08 , &H00)
Call Tft_16bit_set_reg(&H09 , &HEF)
End If
If Tft_16bit_disp_rotation = 90 Then
If Is_tft_16bit_rotated_180() = 1 Then
Call Tft_16bit_set_reg(&H16 , &HC8) ' MY=1, MX=1, MV=0, BGR=1
Else
Call Tft_16bit_set_reg(&H16 , &H08) ' MY=0, MX=0, MV=0, BGR=1
End If
Else
If Is_tft_16bit_rotated_180() = 1 Then
Call Tft_16bit_set_reg(&H16 , &HA8) ' MY=0, MX=1, MV=1, BGR=1
Else
Call Tft_16bit_set_reg(&H16 , &H68) ' MY=1, MX=0, MV=1, BGR=1
End If
End If
' Power Voltage Setting
Call Tft_16bit_set_reg(&H1b , &H1B) ' VRH = 4.65
Call Tft_16bit_set_reg(&H1a , &H01) ' BT
Call Tft_16bit_set_reg(&H24 , &H2F) ' VMH
Call Tft_16bit_set_reg(&H25 , &H57) ' VML
' Vcom offset
Call Tft_16bit_set_reg(&H23 , &H8D) ' FLICKER ADJUST
' Power ON Setting
Call Tft_16bit_set_reg(&H18 , &H36) '
Call Tft_16bit_set_reg(&H19 , &H01) '
Call Tft_16bit_set_reg(&H01 , &H00) '
Call Tft_16bit_set_reg(&H1f , &H88) '
Waitms 5
Call Tft_16bit_set_reg(&H1f , &H80) '
Waitms 5
Call Tft_16bit_set_reg(&H1f , &H90) '
Waitms 5
Call Tft_16bit_set_reg(&H1f , &HD0) '
Waitms 5
' 65K Color Selection
Call Tft_16bit_set_reg(&H17 , &H05) '
' Set Panel
Call Tft_16bit_set_reg(&H36 , &H00) ' Panel characteristic control register
' Display ON Setting
Call Tft_16bit_set_reg(&H28 , &H38) '
Waitms 10 : Waitms 10 : Waitms 10 : Waitms 10
Call Tft_16bit_set_reg(&H28 , &H3C) '
End Sub[/code:1:4fe66975f5]
↧