Fórum témák

» Több friss téma
Fórum » Színes LCD + PIC
 
Témaindító: pici, idő: Feb 19, 2008
Témakörök:
Lapozás: OK   37 / 46
(#) Wezuv válasza Droot hozzászólására (») Dec 27, 2015 /
 
Ha engedélyezve hagyod az adat vonalakat, akkor ez történik.
(#) Droot válasza Wezuv hozzászólására (») Dec 27, 2015 /
 
Ezt reggeli után megnézem.
Tehát a CSX láb alacsony szinten marad, akkor történhet ez.
Érdekes ha PWM-el leveszem (8 bites) 100-ra a háttérvilágítást 254-ről, akkor semmi gond. De mindjárt átbogarászom.
Szerk.: Nem néztem át, de nyugalmi állapotban megmértem és magas szinten van.
A hozzászólás módosítva: Dec 27, 2015
(#) Wezuv válasza Droot hozzászólására (») Dec 27, 2015 /
 
Ha az engedélyezés mellett az adat lábak lebegnek, akkor bármi beszűrődhet. Minél nagyobb a fogyasztás, annál nagyobb lehet a zavarjel is. Nekem akkor szokott ilyen elmászás történni, amikor a kirakott kép után újabb programot töltök rá, vagy resetbe teszem a PIC-et és minden láb lebeg, de akkor se mindig, mert függ a huzalozástól és a zavaroktól...
(#) bbalazs_ válasza Droot hozzászólására (») Dec 27, 2015 /
 
A CSX labat csak akkor kell bekotni, ha hasznalod a shutdown modot.
(#) Wezuv válasza Droot hozzászólására (») Dec 27, 2015 /
 
A CSX láb mellé az adatlap a 18 bitet írja. 18 biten adod be az adatokat?
(#) Droot válasza Wezuv hozzászólására (») Dec 27, 2015 /
 
16 biten küldöm az adatokat. Akkor a CSX lábat nem is kell használnom?
Én adat küldés előtt alacsony szintbe rakom, utána pedig magasra.
(#) Wezuv válasza Droot hozzászólására (») Dec 27, 2015 /
 
Ez az adatlap egy agyrém. Úgy tűnik jól használod, engem tévesztett meg az 1. rajz. Minden más helyen használva van a CSX láb a folyamat ábrákon és van egy shutdown eljárás is, ahol egyedi időzítéseket kell használni.
(#) Wezuv válasza Droot hozzászólására (») Dec 27, 2015 /
 
Az IM lábakat beállítottad?
(#) Droot válasza Wezuv hozzászólására (») Dec 27, 2015 /
 
Igen, az IM lábak az LCD-n 16 bites kommunikációra vannak állítva.
A gond az, hogy 3,3V-ról abszolút fakó a kép, olyan mint amikor szétesik. És most hogy nézegettem most jutott eszembe, hogy már úgy voltam vele hogy mindegy mi lesz vele, ráraktam 5V-ra és a videó is 5V-os tápról készült. Persze 3,3V kell neki, nincs rajta stabilizátor, mert megmértem és a touch IC is 5V-ot kapott 3,3 helyett. Tudom, hogy ezzel adtam neki egy pofont, de szerintem gyári hibás a kijelző.
A touch eleve leesett róla, elengedte a ragasztás és a touch és a kijelző között nedvesség miatt foltok voltak, kiszárítás után jó lett, majd a gyári ragasztót letakarítottam és visszaragasztottam a touch-t.
A kínai akitől van persze azt mondja hogy ez 100% tested, de amikor kibontottam már láttam rajta, hogy lesz még vele bajom. Vissza sem veszi a kínai, nem válaszol.
(#) Wezuv válasza Droot hozzászólására (») Dec 27, 2015 /
 
Nem a touch miatt aggódnék, bár nem tudom milyen van rajta az XPT2046 6V-ig elvileg nem megy tönkre, de az LCD meghajtó IC 3,3V-os. Nem lehet, hogy még is van rajta regulátor? Nekem négyféle TFT-m van, mindegyiken van, igaz átkötéssel be kell állítani, hogy 3.3, vagy 5V-ról akarjuk használni. Mindenesetre itt már történtek olyan dolgok, amik miatt elég nehéz érdemben segíteni...
(#) Droot válasza Wezuv hozzászólására (») Dec 27, 2015 /
 
Igen, történtek.
Ezen csak a helye van rajta, meg a jumper. Biztos hogy nincs rajta, mert a touch ic lábainál mértem feszültséget és ott is 5V van.
3,3V-ról most nem esik szét, csak akkor, ha a háttérvilágítást feljebb veszem, mondjuk maxra.
Nekem alapból rossz volt ez szerintem.
(#) Wezuv hozzászólása Dec 28, 2015 /
 
Droot kérdésére a válaszom:
Szia!
Igen innen lett rendelve.
A kapacitív touch-ot szerintem felszerelik, kompletten, de nem rendeltem még ilyen verziót.
A panelen ki van alakítva minden csatlakozás hagyományos tüskesorosra és fóliásra is. Ha fóliást kérsz, akkor adnak hozzá fóliakábelt és csatit a másik oldalra. A panelen be lesz forrasztva a választott csatlakozó.
Mindkét protokol mindkét féle csatlakozóval elérhető. Nem tudom mi a különbség, én nem látok semmit hardveresen. A vezérlő vonalak eltérően működnek a módokban, de ezt a kontroller IC-n belül kell beállítani az inicializálás során és utána természetesen annak megfelelően kell vezérelni a lábakat. Én is az Intel 8080 master interface protokolt használom, ahogy a legtöbb esetben ezt szokták a példákban.
A hozzászólás módosítva: Dec 28, 2015
(#) Droot válasza Wezuv hozzászólására (») Dec 28, 2015 /
 
Csak rezisztívvel rendeltél?
Ha igen, akkor mindig jól működött?
(#) Wezuv válasza Droot hozzászólására (») Dec 28, 2015 /
 
Igen, csak rezisztívet rendeltem.
Igaz nem itt, hanem a PIC Miértek hogyanokban írtam a touch-ról:
Bővebben: Link
Valójában ide való a téma, de ott merült fel kérdésként. Azóta a régi 5"-ost is kipróbáltam és az is jól működik.
(#) Balagemann2031 hozzászólása Jan 8, 2016 /
 
Sziasztok! Van egy 2,2"-os TFT kijelző modulom, ILI9341 vezérlővel. Egy 24H-s PIC-kel próbálok legalább egy pixelt átszinezni de hiába. Az inicializálás megy, inverzre tudom állítani a kijelzőt, de nem tudok kitenni semmit a kijelzőre. Az aadatlap alapján próbáltam memóriába írni pár bájtot, színbeállító regbe is írtam adatot, de eddig semmi. Esetleg valaki dolgozott már itt ilyen kijelzővel? A kérdésem hogy init után, hogyan szinezzek át egy pixelt? Ha ez megvan utánna biztosan menne a többi.
(#) Droot válasza Balagemann2031 hozzászólására (») Jan 8, 2016 /
 
Nézz meg egy kész library-t és az alapján csináld. Én is először kész library-vel kipróbáltam az LCD-t, majd újraírtam egy kész library-t a saját ízlésem szerint.
(#) Balagemann2031 válasza Droot hozzászólására (») Jan 8, 2016 /
 
Assemblyben programozom csak :/ Az initet Arduino projektekből szedtem össze.
(#) bbalazs_ válasza Balagemann2031 hozzászólására (») Jan 8, 2016 /
 
Mutasd a progit, en eppen ilyet keszulok irni, ugyanugy 24-es procira, pont ugyanezzel a kijelozvel. Mondjuk nekem 18-assal mar van tapasztalatom.
Te rogton 24-el kezdtel?
A 9341-nel elotte ki kell adni, hogy hova es mekkorat akarsz irni, es csak utana lehet a 2c paranccsal a byteokat inditani.
(#) Balagemann2031 válasza bbalazs_ hozzászólására (») Jan 8, 2016 /
 
Szia 16F-el kezdtem fél év után 18F re váltottam, ezt 2 évig progiztam, fél éve fejlesztek 24H-ra, A prgramozásával nincs gond. Csak asm et használok.
  1. ;=={PROCESSOR + CONFIG}=========================================================
  2. .include "p24HJ128GP502.inc"
  3. config __FBS, RBS_NO_BOOT_RAM & BSS_NO_BOOT_CODE
  4. config __FSS, RSS_NO_SEC_RAM & SSS_NO_SEC_CODE
  5. config __FGS, GSS_OFF & GWRP_OFF
  6. config __FOSCSEL, IESO_OFF & FNOSC_FRC
  7. config __FOSC, FCKSM_CSDCMD & IOL1WAY_ON & OSCIOFNC_ON & POSCMD_NONE
  8. config __FWDT, FWDTEN_OFF
  9. config __FPOR, ALTI2C_OFF & FPWRT_PWR128
  10. config __FICD, JTAGEN_OFF & ICS_PGD1
  11. ;=={I/O PORTS}==================================================================
  12.        
  13.  
  14.                 ;***LCD MODUL***
  15.                                                 ;PIN23  RB12    CLK
  16.                                                 ;PIN24  RB13    SDI
  17.                                                 ;PIN26  RB15    /CE
  18.                                                 ;PIN16  RB7             D/C
  19.                                                 ;PIN18  RB9             RES
  20.  
  21.                 ;***ANALIG CHANNEL***
  22.        
  23.                                                 ;PIN2   RA0             AN0            
  24.                                                 ;PIN3   RA1             AN1
  25.                                                 ;PIN6   RB0             AN2
  26.                                                 ;PIN7   RB1             AN3
  27.                
  28.                 ;***BUTTONS***
  29.                                                 ;PIN6   RB2             SW1            
  30.                                                 ;PIN7   RB3             SW2
  31.                                                 ;PIN9   RA2             SW3
  32.                                                 ;PIN10  RA3             SW4
  33.                                                 ;PIN11  RB4             SW5
  34.                                                 ;PIN1   MCLR    RESET
  35.                
  36.        
  37.  
  38.  
  39.  
  40. ;==(ASM30 DIRECTIVES)===========================================================
  41.         .bss
  42. var1:                   .space 2
  43. var2:                   .space 2
  44. TG_DATA:                .space 2
  45. POINTER:                .space 2
  46. XCIM:                   .space 2
  47. YCIM:                   .space 2
  48. AREG:                   .space 2
  49. ;------------------------
  50. NRF_STATUS:             .space 2
  51. NRF_FIFO_STATUS:.space 2
  52. NRF_CONFIG:             .space 2
  53. NRF_OBSERV:             .space 2
  54. NRF_CD:                 .space 2
  55. NRF_IRQ:                .space 2
  56.  
  57. .global __reset
  58. .text
  59.  
  60.  
  61. ;==(ASM30 macros)===========================================================
  62.  
  63.  
  64.  
  65.  
  66. ;==(INTERRUPT VECTORS)==========================================================
  67.  
  68.  
  69.  
  70.  
  71. ;==(PROGRAM START)==============================================================
  72. ;SZOFTVERES VEREM KONFIGURÁLÁSA
  73. __reset:        mov             #__SP_init,w15                  ;veremmutató inicializálása
  74.                         mov             #__SPLIM_init,w0                ;veremmutató felső határa
  75.                         mov             w0,SPLIM
  76. ;-----------------------------------
  77. ;I/O KONFIGURÁLÁSA
  78.                         mov             #0X091F,w0
  79.                         mov             W0,TRISB
  80.                         nop
  81.                         mov             #0x000C,w0
  82.                         mov             W0,TRISA
  83.                         nop
  84.                         clr             LATB
  85.                         setm    AD1PCFGL                        ;minden láb digitális
  86. ;-----------------------------------
  87. ;PERIFÉRIA ÁTHELYEZÉS ENGEDÉLYEZÉSE
  88.                         mov             #OSCCON,w1
  89.                         mov             #0x46,w2
  90.                         mov             #0x57,w3
  91.                         mov.b   w2,[w1]
  92.                         mov.b   w3,[w1]
  93.                         bclr    OSCCON,#IOLOCK
  94. ;--PERIPHERIA KONFIGURÁLÁSA  
  95.                                         ;SPI1 KOMMUNIKÁCIÓ LCD-VEL
  96.                         mov             #0x0708,w0                                      ;SDO1->RP13, SCK1->RP12
  97.                         mov             w0,RPOR6
  98.                         mov.b   #0x0e,w0                                        ;SDI1->RP14
  99.                         mov.b   wreg,RPINR20           
  100.  
  101.                                         ;SPI2 KOMMUNIKÁCIÓ NRF-MODULLAL
  102.                         mov             #0x0008,w0
  103.                         mov             w0,RPINR22                                      ;SDI2->RP8
  104.                         mov             #0x0A00,w0
  105.                         mov             w0,RPOR2                                        ;SDO2->RP5
  106.                         mov             #0x000B,w0
  107.                         mov             w0,RPOR5                                        ;SCK2->RP10
  108.  
  109. ;--PERIPHERIA LEZÁRÁSA
  110.                         mov             #OSCCON,w1
  111.                         mov             #0x46,w2
  112.                         mov             #0x57,w3
  113.                         mov.b   w2,[w1]
  114.                         mov.b   w3,[w1]
  115.                         bset    OSCCON,#IOLOCK
  116. ;-----------------------------------
  117.                
  118. SPI1_init:      bclr    SPI1STAT,#SPIEN
  119.                         mov             #0x013e,w0                              ;Master, 8 bit, CKE=1, CKP=0
  120.                         mov             w0,SPI1CON1                             ;921,6kHz (7,3728MHz/2 /4)
  121.                         clr             SPI1CON2                                ;standard mód
  122.                         mov             #0x8000,w0                              ;SPI1 eng.
  123.                         mov             w0,SPI1STAT
  124.  
  125.  
  126. START:
  127. ;-----------TFT_DISPLAY_reset-----------
  128. ;HW    
  129.                 BSET            LATB,#9
  130.                 CALL            IDO
  131.                 BCLR            LATB,#9
  132.                 CALL            IDO
  133.                 BSET            LATB,#9
  134.                 BSET            LATB,#15                ;CS->1         
  135. ;SW
  136.                 BCLR            LATB,#15                ;CS->0
  137.                 MOV.B           #0X01,W0
  138.                 MOV.B           WREG,TG_DATA
  139.                 CALL            KULD_PARANCS
  140.                 BSET            LATB,#15                ;CS->1
  141.                 CALL            IDO
  142. ;-----------TFT_DISPLAY_INIT-------------
  143. ;//Power control A
  144.                 BCLR    LATB,#15                ;CS->0         
  145.                 MOV.B   #0XCB,W0
  146.                 MOV.B   WREG,TG_DATA
  147.                 CALL    KULD_PARANCS
  148. ;-             
  149.                 MOV.B   #0X39,W0
  150.                 MOV.B   WREG,TG_DATA
  151.                 CALL    KULD_ADAT
  152. ;-
  153.                 MOV.B   #0X2C,W0
  154.                 MOV.B   WREG,TG_DATA
  155.                 CALL    KULD_ADAT
  156. ;-     
  157.                 MOV.B   #0X00,W0
  158.                 MOV.B   WREG,TG_DATA
  159.                 CALL    KULD_ADAT
  160. ;-
  161.                 MOV.B   #0X34,W0
  162.                 MOV.B   WREG,TG_DATA
  163.                 CALL    KULD_ADAT
  164. ;-     
  165.                 MOV.B   #0X02,W0
  166.                 MOV.B   WREG,TG_DATA
  167.                 CALL    KULD_ADAT
  168.                 BSET    LATB,#15                ;CS->1
  169. ;-------------
  170. ;//Power control B
  171.                 BCLR    LATB,#15                ;CS->0         
  172.                 MOV.B   #0XCF,W0
  173.                 MOV.B   WREG,TG_DATA
  174.                 CALL    KULD_PARANCS
  175. ;-             
  176.                 MOV.B   #0X00,W0
  177.                 MOV.B   WREG,TG_DATA
  178.                 CALL    KULD_ADAT
  179. ;-
  180.                 MOV.B   #0XC1,W0
  181.                 MOV.B   WREG,TG_DATA
  182.                 CALL    KULD_ADAT
  183. ;-     
  184.                 MOV.B   #0X30,W0
  185.                 MOV.B   WREG,TG_DATA
  186.                 CALL    KULD_ADAT
  187.                 BSET    LATB,#15                ;CS->1
  188. ;-------------
  189. ;//Driver timing control A
  190.                 BCLR    LATB,#15                ;CS->0         
  191.                 MOV.B   #0XE8,W0
  192.                 MOV.B   WREG,TG_DATA
  193.                 CALL    KULD_PARANCS
  194. ;-             
  195.                 MOV.B   #0X85,W0
  196.                 MOV.B   WREG,TG_DATA
  197.                 CALL    KULD_ADAT
  198. ;-
  199.                 MOV.B   #0X00,W0
  200.                 MOV.B   WREG,TG_DATA
  201.                 CALL    KULD_ADAT
  202. ;-     
  203.                 MOV.B   #0X78,W0
  204.                 MOV.B   WREG,TG_DATA
  205.                 CALL    KULD_ADAT
  206.                 BSET    LATB,#15                ;CS->1
  207. ;-------------
  208. ;//Driver timing control B
  209.                 BCLR    LATB,#15                ;CS->0         
  210.                 MOV.B   #0XEA,W0
  211.                 MOV.B   WREG,TG_DATA
  212.                 CALL    KULD_PARANCS
  213. ;-             
  214.                 MOV.B   #0X00,W0
  215.                 MOV.B   WREG,TG_DATA
  216.                 CALL    KULD_ADAT
  217. ;-
  218.                 MOV.B   #0X00,W0
  219.                 MOV.B   WREG,TG_DATA
  220.                 CALL    KULD_ADAT
  221.                 BSET    LATB,#15                ;CS->1
  222. ;-------------
  223. ;//Power on sequence control
  224.                 BCLR    LATB,#15                ;CS->0         
  225.                 MOV.B   #0XED,W0
  226.                 MOV.B   WREG,TG_DATA
  227.                 CALL    KULD_PARANCS
  228. ;-             
  229.                 MOV.B   #0X64,W0
  230.                 MOV.B   WREG,TG_DATA
  231.                 CALL    KULD_ADAT
  232. ;-
  233.                 MOV.B   #0X03,W0
  234.                 MOV.B   WREG,TG_DATA
  235.                 CALL    KULD_ADAT
  236. ;-     
  237.                 MOV.B   #0X12,W0
  238.                 MOV.B   WREG,TG_DATA
  239.                 CALL    KULD_ADAT
  240. ;-
  241. ;-     
  242.                 MOV.B   #0X81,W0
  243.                 MOV.B   WREG,TG_DATA
  244.                 CALL    KULD_ADAT
  245.                 BSET    LATB,#15                ;CS->1
  246. ;-------------
  247. ;//Pump ratio control
  248.                 BCLR    LATB,#15                ;CS->0         
  249.                 MOV.B   #0XF7,W0
  250.                 MOV.B   WREG,TG_DATA
  251.                 CALL    KULD_PARANCS
  252. ;-             
  253.                 MOV.B   #0X20,W0
  254.                 MOV.B   WREG,TG_DATA
  255.                 CALL    KULD_ADAT
  256.                 BSET    LATB,#15                ;CS->1
  257. ;-------------
  258. ;//Power Control 1
  259.                 BCLR    LATB,#15                ;CS->0         
  260.                 MOV.B   #0XC0,W0
  261.                 MOV.B   WREG,TG_DATA
  262.                 CALL    KULD_PARANCS
  263. ;-             
  264.                 MOV.B   #0X23,W0
  265.                 MOV.B   WREG,TG_DATA
  266.                 CALL    KULD_ADAT
  267.                 BSET    LATB,#15                ;CS->1
  268. ;-------------
  269. ;//Power Control 2
  270.                 BCLR    LATB,#15                ;CS->0         
  271.                 MOV.B   #0XC1,W0
  272.                 MOV.B   WREG,TG_DATA
  273.                 CALL    KULD_PARANCS
  274. ;-             
  275.                 MOV.B   #0X10,W0
  276.                 MOV.B   WREG,TG_DATA
  277.                 CALL    KULD_ADAT
  278.                 BSET    LATB,#15                ;CS->1
  279. ;-------------
  280. ;//VCOM Control 1
  281.                 BCLR    LATB,#15                ;CS->0         
  282.                 MOV.B   #0XC5,W0
  283.                 MOV.B   WREG,TG_DATA
  284.                 CALL    KULD_PARANCS
  285. ;-             
  286.                 MOV.B   #0X2B,W0
  287.                 MOV.B   WREG,TG_DATA
  288.                 CALL    KULD_ADAT
  289. ;-             
  290.                 MOV.B   #0X2B,W0
  291.                 MOV.B   WREG,TG_DATA
  292.                 CALL    KULD_ADAT
  293.                 BSET    LATB,#15                ;CS->1
  294. ;-------------
  295. ;//Memory Access Control
  296.                 BCLR    LATB,#15                ;CS->0         
  297.                 MOV.B   #0X36,W0
  298.                 MOV.B   WREG,TG_DATA
  299.                 CALL    KULD_PARANCS
  300. ;-             
  301.                 MOV.B   #0X48,W0
  302.                 MOV.B   WREG,TG_DATA
  303.                 CALL    KULD_ADAT
  304.                 BSET    LATB,#15                ;CS->1
  305. ;-------------
  306. ;//Frame Rate Control (In Normal Mode/Full Colors)
  307.                 BCLR    LATB,#15                ;CS->0         
  308.                 MOV.B   #0XB1,W0
  309.                 MOV.B   WREG,TG_DATA
  310.                 CALL    KULD_PARANCS
  311. ;-             
  312.                 MOV.B   #0X00,W0
  313.                 MOV.B   WREG,TG_DATA
  314.                 CALL    KULD_ADAT
  315. ;-             
  316.                 MOV.B   #0X1B,W0
  317.                 MOV.B   WREG,TG_DATA
  318.                 CALL    KULD_ADAT
  319.                 BSET    LATB,#15                ;CS->1
  320. ;-------------
  321. ;//Display Function Control
  322.                 BCLR    LATB,#15                ;CS->0         
  323.                 MOV.B   #0XB6,W0
  324.                 MOV.B   WREG,TG_DATA
  325.                 CALL    KULD_PARANCS
  326. ;-             
  327.                 MOV.B   #0X0A,W0
  328.                 MOV.B   WREG,TG_DATA
  329.                 CALL    KULD_ADAT
  330. ;-             
  331.                 MOV.B   #0X02,W0
  332.                 MOV.B   WREG,TG_DATA
  333.                 CALL    KULD_ADAT
  334.                 BSET    LATB,#15                ;CS->1
  335. ;-------------
  336. ;//Enable 3G
  337.                 BCLR    LATB,#15                ;CS->0         
  338.                 MOV.B   #0XF2,W0
  339.                 MOV.B   WREG,TG_DATA
  340.                 CALL    KULD_PARANCS
  341. ;-             
  342.                 MOV.B   #0X02,W0
  343.                 MOV.B   WREG,TG_DATA
  344.                 CALL    KULD_ADAT
  345.                 BSET    LATB,#15                ;CS->1
  346. ;-------------
  347. ;//COLMOD: Pixel Format Set
  348.                 BCLR    LATB,#15                ;CS->0         
  349.                 MOV.B   #0X3A,W0
  350.                 MOV.B   WREG,TG_DATA
  351.                 CALL    KULD_PARANCS
  352. ;-             
  353.                 MOV.B   #0X05,W0
  354.                 MOV.B   WREG,TG_DATA
  355.                 CALL    KULD_ADAT
  356.                 BSET    LATB,#15                ;CS->1
  357. ;-------------
  358. ;//Gamma Set
  359.                 BCLR    LATB,#15                ;CS->0         
  360.                 MOV.B   #0X26,W0
  361.                 MOV.B   WREG,TG_DATA
  362.                 CALL    KULD_PARANCS
  363. ;-             
  364.                 MOV.B   #0X01,W0
  365.                 MOV.B   WREG,TG_DATA
  366.                 CALL    KULD_ADAT
  367.                 BSET    LATB,#15                ;CS->1
  368. ;-------------
  369. ;//Positive Gamma Correction
  370.                 BCLR    LATB,#15                ;CS->0         
  371.                 MOV.B   #0XE0,W0
  372.                 MOV.B   WREG,TG_DATA
  373.                 CALL    KULD_PARANCS
  374. ;-             
  375.                 MOV.B   #0X0F,W0
  376.                 MOV.B   WREG,TG_DATA
  377.                 CALL    KULD_ADAT
  378. ;-
  379.                 MOV.B   #0X31,W0
  380.                 MOV.B   WREG,TG_DATA
  381.                 CALL    KULD_ADAT
  382. ;-     
  383.                 MOV.B   #0X2B,W0
  384.                 MOV.B   WREG,TG_DATA
  385.                 CALL    KULD_ADAT
  386. ;-
  387.                 MOV.B   #0X0C,W0
  388.                 MOV.B   WREG,TG_DATA
  389.                 CALL    KULD_ADAT
  390. ;-     
  391.                 MOV.B   #0X0E,W0
  392.                 MOV.B   WREG,TG_DATA
  393.                 CALL    KULD_ADAT
  394. ;-             
  395.                 MOV.B   #0X08,W0
  396.                 MOV.B   WREG,TG_DATA
  397.                 CALL    KULD_ADAT
  398. ;-
  399.                 MOV.B   #0X4E,W0
  400.                 MOV.B   WREG,TG_DATA
  401.                 CALL    KULD_ADAT
  402. ;-     
  403.                 MOV.B   #0XF1,W0
  404.                 MOV.B   WREG,TG_DATA
  405.                 CALL    KULD_ADAT
  406. ;-
  407.                 MOV.B   #0X37,W0
  408.                 MOV.B   WREG,TG_DATA
  409.                 CALL    KULD_ADAT
  410. ;-     
  411.                 MOV.B   #0X07,W0
  412.                 MOV.B   WREG,TG_DATA
  413.                 CALL    KULD_ADAT
  414. ;-
  415.                 MOV.B   #0X10,W0
  416.                 MOV.B   WREG,TG_DATA
  417.                 CALL    KULD_ADAT
  418. ;-     
  419.                 MOV.B   #0X03,W0
  420.                 MOV.B   WREG,TG_DATA
  421.                 CALL    KULD_ADAT
  422. ;-             
  423.                 MOV.B   #0X0E,W0
  424.                 MOV.B   WREG,TG_DATA
  425.                 CALL    KULD_ADAT
  426. ;-
  427.                 MOV.B   #0X09,W0
  428.                 MOV.B   WREG,TG_DATA
  429.                 CALL    KULD_ADAT
  430. ;-     
  431.                 MOV.B   #0X00,W0
  432.                 MOV.B   WREG,TG_DATA
  433.                 CALL    KULD_ADAT
  434.                 BSET    LATB,#15                ;CS->1
  435. ;------------
  436. ;//Negative Gamma Correction
  437.                 BCLR    LATB,#15                ;CS->0         
  438.                 MOV.B   #0XE1,W0
  439.                 MOV.B   WREG,TG_DATA
  440.                 CALL    KULD_PARANCS
  441. ;-             
  442.                 MOV.B   #0X00,W0
  443.                 MOV.B   WREG,TG_DATA
  444.                 CALL    KULD_ADAT
  445. ;-
  446.                 MOV.B   #0X0E,W0
  447.                 MOV.B   WREG,TG_DATA
  448.                 CALL    KULD_ADAT
  449. ;-     
  450.                 MOV.B   #0X14,W0
  451.                 MOV.B   WREG,TG_DATA
  452.                 CALL    KULD_ADAT
  453. ;-
  454.                 MOV.B   #0X03,W0
  455.                 MOV.B   WREG,TG_DATA
  456.                 CALL    KULD_ADAT
  457. ;-     
  458.                 MOV.B   #0X11,W0
  459.                 MOV.B   WREG,TG_DATA
  460.                 CALL    KULD_ADAT
  461. ;-             
  462.                 MOV.B   #0X07,W0
  463.                 MOV.B   WREG,TG_DATA
  464.                 CALL    KULD_ADAT
  465. ;-
  466.                 MOV.B   #0X31,W0
  467.                 MOV.B   WREG,TG_DATA
  468.                 CALL    KULD_ADAT
  469. ;-     
  470.                 MOV.B   #0XC1,W0
  471.                 MOV.B   WREG,TG_DATA
  472.                 CALL    KULD_ADAT
  473. ;-
  474.                 MOV.B   #0X48,W0
  475.                 MOV.B   WREG,TG_DATA
  476.                 CALL    KULD_ADAT
  477. ;-     
  478.                 MOV.B   #0X08,W0
  479.                 MOV.B   WREG,TG_DATA
  480.                 CALL    KULD_ADAT
  481. ;-
  482.                 MOV.B   #0X0F,W0
  483.                 MOV.B   WREG,TG_DATA
  484.                 CALL    KULD_ADAT
  485. ;-     
  486.                 MOV.B   #0X0C,W0
  487.                 MOV.B   WREG,TG_DATA
  488.                 CALL    KULD_ADAT
  489. ;-             
  490.                 MOV.B   #0X31,W0
  491.                 MOV.B   WREG,TG_DATA
  492.                 CALL    KULD_ADAT
  493. ;-
  494.                 MOV.B   #0X36,W0
  495.                 MOV.B   WREG,TG_DATA
  496.                 CALL    KULD_ADAT
  497. ;-     
  498.                 MOV.B   #0X0F,W0
  499.                 MOV.B   WREG,TG_DATA
  500.                 CALL    KULD_ADAT
  501.                 BSET    LATB,#15                ;CS->1
  502. ;-------------
  503. ;// Sleep Out
  504.                 BCLR    LATB,#15                ;CS->0         
  505.                 MOV.B   #0X11,W0
  506.                 MOV.B   WREG,TG_DATA
  507.                 CALL    KULD_PARANCS
  508.                 BSET    LATB,#15                ;CS->1
  509.                
  510.                 CALL    IDO
  511.  
  512.  
  513.  
  514.  
  515. ;CASET_ADRESS
  516.                 BCLR    LATB,#15                ;CS->0         
  517.                 MOV.B   #0X2A,W0
  518.                 MOV.B   WREG,TG_DATA
  519.                 CALL    KULD_PARANCS
  520.                
  521. ;-             
  522.                 MOV.B   #0X85,W0
  523.                 MOV.B   WREG,TG_DATA
  524.                 CALL    KULD_ADAT
  525. ;-
  526.                 MOV.B   #0X85,W0
  527.                 MOV.B   WREG,TG_DATA
  528.                 CALL    KULD_ADAT
  529. ;-     
  530.                 MOV.B   #0X05,W0
  531.                 MOV.B   WREG,TG_DATA
  532.                 CALL    KULD_ADAT
  533. ;-
  534.                 MOV.B   #0X05,W0
  535.                 MOV.B   WREG,TG_DATA
  536.                 CALL    KULD_ADAT
  537.                 BSET    LATB,#15                ;CS->1
  538.        
  539. ;PASET_ADRESS
  540.                 BCLR    LATB,#15                ;CS->0         
  541.                 MOV.B   #0X2B,W0
  542.                 MOV.B   WREG,TG_DATA
  543.                 CALL    KULD_PARANCS
  544.                
  545. ;-             
  546.                 MOV.B   #0X84,W0
  547.                 MOV.B   WREG,TG_DATA
  548.                 CALL    KULD_ADAT
  549. ;-
  550.                 MOV.B   #0X84,W0
  551.                 MOV.B   WREG,TG_DATA
  552.                 CALL    KULD_ADAT
  553. ;-     
  554.                 MOV.B   #0X08,W0
  555.                 MOV.B   WREG,TG_DATA
  556.                 CALL    KULD_ADAT
  557. ;-
  558.                 MOV.B   #0X84,W0
  559.                 MOV.B   WREG,TG_DATA
  560.                 CALL    KULD_ADAT
  561.                 BSET    LATB,#15                ;CS->1
  562.  
  563.  
  564.  
  565.  
  566. ;RAMWR
  567.                 BCLR    LATB,#15                ;CS->0         
  568.                 MOV.B   #0X2C,W0
  569.                 MOV.B   WREG,TG_DATA
  570.                 CALL    KULD_PARANCS
  571.                
  572. ;-             
  573.                 MOV.B   #0X87,W0
  574.                 MOV.B   WREG,TG_DATA
  575.                 CALL    KULD_ADAT
  576. ;-
  577.                 MOV.B   #0X87,W0
  578.                 MOV.B   WREG,TG_DATA
  579.                 CALL    KULD_ADAT
  580. ;-     
  581.                 MOV.B   #0X87,W0
  582.                 MOV.B   WREG,TG_DATA
  583.                 CALL    KULD_ADAT
  584. ;-
  585.                 MOV.B   #0X87,W0
  586.                 MOV.B   WREG,TG_DATA
  587.                 CALL    KULD_ADAT
  588.                 BSET    LATB,#15                ;CS->1
  589.  
  590. ;RGB_SET
  591.                 BCLR    LATB,#15                ;CS->0         
  592.                 MOV.B   #0X2D,W0
  593.                 MOV.B   WREG,TG_DATA
  594.                 CALL    KULD_PARANCS
  595.                
  596. ;-             
  597.                 MOV.B   #0X87,W0
  598.                 MOV.B   WREG,TG_DATA
  599.                 CALL    KULD_ADAT
  600. ;-
  601.                 MOV.B   #0X87,W0
  602.                 MOV.B   WREG,TG_DATA
  603.                 CALL    KULD_ADAT
  604. ;-     
  605.                 MOV.B   #0X87,W0
  606.                 MOV.B   WREG,TG_DATA
  607.                 CALL    KULD_ADAT
  608. ;-
  609.                 MOV.B   #0X87,W0
  610.                 MOV.B   WREG,TG_DATA
  611.                 CALL    KULD_ADAT
  612.                 BSET    LATB,#15                ;CS->1
  613.  
  614. ;VERTICAL SCROLLING DEF
  615. ;
  616.                 BCLR    LATB,#15                ;CS->0         
  617.                 MOV.B   #0X30,W0
  618.                 MOV.B   WREG,TG_DATA
  619.                 CALL    KULD_PARANCS
  620.                
  621. ;-             
  622.                 MOV.B   #0X87,W0
  623.                 MOV.B   WREG,TG_DATA
  624.                 CALL    KULD_ADAT
  625. ;-
  626.                 MOV.B   #0X87,W0
  627.                 MOV.B   WREG,TG_DATA
  628.                 CALL    KULD_ADAT
  629. ;-     
  630.                 MOV.B   #0X87,W0
  631.                 MOV.B   WREG,TG_DATA
  632.                 CALL    KULD_ADAT
  633. ;-
  634.                 MOV.B   #0X87,W0
  635.                 MOV.B   WREG,TG_DATA
  636.                 CALL    KULD_ADAT
  637.                 BSET    LATB,#15                ;CS->1
  638.  
  639. ;VERTICAL SCROLLING DEF
  640. ;
  641.                 BCLR    LATB,#15                ;CS->0         
  642.                 MOV.B   #0X30,W0
  643.                 MOV.B   WREG,TG_DATA
  644.                 CALL    KULD_PARANCS
  645.                
  646. ;-             
  647.                 MOV.B   #0X87,W0
  648.                 MOV.B   WREG,TG_DATA
  649.                 CALL    KULD_ADAT
  650. ;-
  651.                 MOV.B   #0X87,W0
  652.                 MOV.B   WREG,TG_DATA
  653.                 CALL    KULD_ADAT
  654. ;-     
  655.                 MOV.B   #0X87,W0
  656.                 MOV.B   WREG,TG_DATA
  657.                 CALL    KULD_ADAT
  658. ;-
  659.                 MOV.B   #0X7,W0
  660.                 MOV.B   WREG,TG_DATA
  661.                 CALL    KULD_ADAT
  662.                 BSET    LATB,#15                ;CS->1
  663.  
  664. ;//Display NORMAL MODE ON
  665.                 BCLR    LATB,#15                ;CS->0         
  666.                 MOV.B   #0X13,W0
  667.                 MOV.B   WREG,TG_DATA
  668.                 CALL    KULD_PARANCS
  669.                 BSET    LATB,#15                ;CS->1 
  670.  
  671. ;//Display On
  672.                 BCLR    LATB,#15                ;CS->0         
  673.                 MOV.B   #0X29,W0
  674.                 MOV.B   WREG,TG_DATA
  675.                 CALL    KULD_PARANCS
  676.                 BSET    LATB,#15                ;CS->1 
  677.  
  678.  
  679.  
  680.  
  681. TZ:             GOTO            TZ
  682.  
  683.  
  684.  
  685.  
  686.  
  687. KULD_PARANCS:
  688.                
  689.                 MOV.B           TG_DATA,WREG
  690.                 MOV.B           WREG,SPI1BUF
  691.                 BCLR            LATB,#7                         ;DC->0
  692. P3:             BTST            SPI1STAT,#SPIRBF
  693.                 BRA                     Z,P3
  694.                 BSET            LATB,#7                         ;DC->1
  695.                 MOV                     SPI1BUF,WREG
  696.                 RETURN
  697.  
  698. KULD_ADAT:
  699.                
  700.                 MOV.B           TG_DATA,WREG
  701.                 MOV.B           WREG,SPI1BUF
  702. P31:    BTST            SPI1STAT,#SPIRBF
  703.                 BRA                     Z,P31
  704.                 MOV                     SPI1BUF,WREG
  705.                 RETURN
  706.  
  707.  
  708.  
  709.  
  710.  
  711. ;=={Várakozó kezelő rutinok}================================================================
  712.  
  713. IDO:
  714.         mov             #500,w1
  715.         mov             w1,var1
  716. egy:
  717.         mov             #500,w1
  718.         mov             w1,var2
  719. ketto:
  720.         nop
  721.         dec             var2
  722.         bra             nz,ketto
  723.         dec             var1
  724.         bra             nz,egy
  725.         return
  726.  
  727. IDO2:
  728.         mov             #500,w1
  729.         mov             w1,var1
  730. egy1:
  731.         mov             #1000,w1
  732.         mov             w1,var2
  733. ketto1:
  734.         nop
  735.         dec             var2
  736.         bra             nz,ketto1
  737.         dec             var1
  738.         bra             nz,egy1
  739.         return
  740.  
  741. ;=={Számok bitképei}================================================================
  742.  
  743.  
  744.  
  745. ;=={END Program}================================================================
  746. .end
(#) bbalazs_ válasza Balagemann2031 hozzászólására (») Jan 8, 2016 /
 
Azt szabad megkerdezni, hogy miert SPI modban hajtod?
A masik, hogy en nem latom ezen a pontok beirasanak probalkozasat sem. Csak egy inicializalasi rutint.
(#) Balagemann2031 válasza bbalazs_ hozzászólására (») Jan 8, 2016 /
 
Szia! Nem értem mi a baj a SPI-vel, illetve mire gondolsz? Elvileg még I2C vel lehetne, de a SPI-t jobban szeretem, egyszerübb és gyorsabb kommunikáció. A pontok beírását a 2C-parancsal próbáltam bevinni, ami a kódban is látható. Most eljutottam addig hogy tudok szineket és vonalat húzni, úgyhogy gyakorlatilag megvan amit szerettem volna. A megoldásomat végülis a 3C parancs os bevitel adta, amit utánna adatként kiküldök az megjelent a kijelzőn (FF fekete) (3F piros) Esetleg arról tudsz valamit mondani, hogy mi a különbség a 2C és a 3C parancs között?
(#) bbalazs_ válasza Balagemann2031 hozzászólására (») Jan 8, 2016 /
 
nem tudom, te honnan vetted, de nalam parhuzamos es igy szerintem joval gyorsabb. Azert ez mar elegge nagy felbontasu kepernyo, sok adatot kell kikuldeni.

egyebkent gratulalok, hogy sikerult!

Ahogy latom, a 2c mindig ugyanonnan kezdi az irast, a 3c pedig az utolso irt poziciotol.
tehat ezzel folytatni tudod az irast.
(#) Balagemann2031 válasza bbalazs_ hozzászólására (») Jan 8, 2016 /
 
Nekem a képen látható fajta van, ezen lehetetlen a párhuzamos megoldás, a 2C vel még semmit sem sikerült kitennem, a 3C valóban folytatólagos, továbbá a 3C parancs után 2 paraméter (16bit) megadja a színt is. Amiket fent írtam színkódokra az inverz módban igaz, azóta már normálra állítottam. most a címzésekkel szórakozok, valamiért 4-5 pixellel beljebb kezdni akkor is ha nullára állítom a pozició értékeket, lehet hogy valamit elnézek.
(#) Balagemann2031 válasza Balagemann2031 hozzászólására (») Jan 8, 2016 /
 
A 3C-s parancs a képformátumhoz való ezért folyamatos, viszont rájöttem, hogy ha az ember nem képet akar, hanem valami adatot megjeleníteni, akkor ez nem járható. Jelenleg a másik módot próbálom megtalálni amikor rugalmasan címezhető a ramterület.
(#) bbalazs_ válasza Balagemann2031 hozzászólására (») Jan 8, 2016 /
 
De mondom, hogy a 2C-t meg kell elozze a sor es oszlop beallitasa.
Itt egy pelda 18F-ben:
A writeregister macro igazabol a parancs es meg ket byte beirasa. A kijelzo adatlapjan megtalalod a ket addset erteket (0x2a,0x2b)


  1. ILI9341_ClearDisplay:
  2.         writeRegister2x16 ILI9341_COLADDRSET, D'0',D'319'       ;x koord start,stop
  3.         writeRegister2x16 ILI9341_PAGEADDRSET,D'0',D'239'       ;y koord start, stop
  4.        
  5.         Lcd_Write_Com ILI9341_MEMORYWRITE
  6.         bsf comdat     
  7.         movff hatterszinlo,LATD
  8.  
  9.         mov TEMP3,2
  10.         mov TEMP2,2c
  11.         mov TEMP1,0
  12.         jmp clcik1
  13.  
  14.         clrf TEMP3
  15. clcik3:
  16.         clrf TEMP2
  17. clcik2:
  18.         clrf TEMP1
  19. clcik1:
  20.         WR_STROBE
  21.         WR_STROBE
  22.         decfsz TEMP1
  23.         jmp clcik1
  24.         decfsz TEMP2
  25.         jmp clcik2
  26.         decfsz TEMP3
  27.         jmp clcik3
  28.         ret
A hozzászólás módosítva: Jan 8, 2016
(#) Balagemann2031 válasza bbalazs_ hozzászólására (») Jan 8, 2016 /
 
Nem értetlenkedésből, de amit felmásoltam kódrészletet, ott megelőzi a 0x2A és 0x2B parancs beállítás a 0x2C parancsot. Egyébkét a 0x3c folytonost is meg kell előzze e 0x2a 0x2b címbeállítás. Na de ami most engem foglalkoztat az az hogy magát az írandó pixel címét hogyan adom meg? Mert az 0xa2 és 0xb2-kkel csak a kezdeti és végpontokat tudom meghatározni, de azon belül nem értem hogyan tudok lépkedni.. 3310 es nokia kijelcőjét használtam ezelött, abban vígan megcsináltam amit akartam, nem lehet ezt is valahogy hasonló üzemmódban használni? Sorokra felosztani pl..
Meg van a color set (0x2D) parancsot péltául milyen módban kell használni? Mert ha a 0x3C folyamatos memóriaíró paranccsal írok akkor az azt követő adatok értéke adja meg a színt.
Tanulmányozom az adatlapot egész nap, de már kivagyok tőle.
(#) bbalazs_ válasza Balagemann2031 hozzászólására (») Jan 8, 2016 /
 
Igen, mar megtalaltam. Oszinten szolva egyaltalan nem vagyok meggyozodve rola, hogy a regisztereket jo sorrendben irod (ugy ertem, az inicialast kulon kellene es a rajzolast csak utana, miutan bekapcsoltad a kepernyot).
Probald ki ugy, hogy az inicializalast megcsinalod ezek nelkul es utana allitod a 2a,2b es irsz a 2c paranccsal. Csak azert gondolom ezt, mert ez nekem igy mukodik szepen.
A 2a es 2b egyszerre allitja a kezdo es a vegcimeket. Lathatod az adatlapban. S es E azaz Start es End word-oket kell megadni utanuk. Tehat nem egy pontot, hanem egy teglalapot definialsz veluk.
(#) Balagemann2031 válasza bbalazs_ hozzászólására (») Jan 8, 2016 /
 
Értem tehát téglalap. Eddig rendben, viszont azt most nem értem, hogy a két kordináta kezdőpontja nulla akkor miért van ez a kijelzőn? beállítom rendesen a 2 16 bites címregisztert aztán a 3C vel kiküldök 0xFFF db pontot. Na mindegy ez sok mára..
A hozzászólás módosítva: Jan 8, 2016

tft.jpg
    
(#) bbalazs_ válasza Balagemann2031 hozzászólására (») Jan 8, 2016 /
 
Ez 2x 2db 16 bites cimregiszter...
Kerlek, probald ki a 2a,2b beallitast. Mondjuk legyen 0,10 es 0,50
Utana meg 2c, majd 500db piros (word).

Egyebkent nalad van kepernyotorles, miutan inicialtad?
Mert pl. nalam alapesetben digitalis szemet van a kepernyon.
A hozzászólás módosítva: Jan 8, 2016
(#) Balagemann2031 válasza bbalazs_ hozzászólására (») Jan 9, 2016 /
 
Elírtam 2x 2db 16bitre gondoltam. Próbálkozom még, viszont a képernyő törlés alatt mit értesz? init elött csinálok hardveres és szoftveres resetet is, és init után az a képernyő fogad amit a fenti képen látsz csak a fekete rész nélkül, tehát tiszta. Szeméttel nem is találkoztam még. Anno 3310 es kijelzőnél csináltam azt a szemét eltüntetésére, hogy végigírtam a kijelzőt kezdésnek üres bájtokkal.
Következő: »»   37 / 46
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem