⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spi.lst

📁 车载DVD osdIC TW8816原厂代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   SPI                                                                   04/01/2008 15:02:33 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE SPI
OBJECT MODULE PLACED IN .\Output\spi.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE spi.c COMPACT OPTIMIZE(9,SIZE) BROWSE MODDP2 INCDIR(.\Include\) DEFINE(INTE
                    -RNAL_MCU) DEBUG OBJECTEXTEND PRINT(.\Source\spi.lst) OBJECT(.\Output\spi.obj)

line level    source

   1          //-------------------------------------------------------------
   2          //-------------------------------------------------------------
   3          
   4          #include "Config.h"
   5          
   6          #ifdef SUPPORT_DELTA_RGB
              
              #include "reg.h"
              #include "typedefs.h"
              #include "spi.h"
              //#include "main.h"
              #include "printf.h"
              #include "main.h"
              
              #define SPI_SCL         P1_0
              #define SPI_SDA         P1_1
              #define SPI_CS_EN               (P4 = P4 | 0x02)  //P4_1=1
              #define SPI_CS_DS               (P4 = P4 & 0xfd)  //P4_1=0
              
              extern  BYTE    DebugLevel;
              
              /*****************************************************************************/
              /* SPI                                                                       */
              /*****************************************************************************/
              
              void DeltaRGBPanelInit(void)
              {
                      //volatile S3C2413_IOPORT_REG *s2413IOP = (S3C2413_IOPORT_REG *)OALPAtoVA(S3C2413_BASE_REG_PA_IOPORT, FAL
             -SE);
              
                      SPI_CS_EN; //SPI_CS     = 1;            //      EN = High                                       CS high
                      SPI_SCL=1;                                                      //      SCL High
                      SPI_SDA = 1;                                                    //      Data High
                      
                      dPrintf(">> 2.8inch lcd test...ready!\r\n");
              
                      dPrintf(">> 2.8inch lcd test...start!\r\n");            
                      delay(7);               // DonGo
                      
                      ///////////////////////////////////////////////////////////////////
                      // Power on Reset and Display off
                      //////////////////////////////////////////////////////////////////
                      WriteSPI(0x07, 0x0000);  //R07 <--0000h 
                      SPIdelay(5*10);  //delay about 25us
                      WriteSPI(0x12, 0x0000);  //R07 <--0000h
              
                      // delay about 10ms --18ms
                      delay(1);
                      
                      ///////////////////////////////////////////////////////////////////
                      // Power Setting Function 1
                      ///////////////////////////////////////////////////////////////////     
                      WriteSPI(0x11, 0x0510);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
C51 COMPILER V7.50   SPI                                                                   04/01/2008 15:02:33 PAGE 2   

                      WriteSPI(0x12, 0x0020);  //R07 <--0000h 
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x13, 0x1f2d);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x14, 0x0000);  //R07 <--0000h 
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x15, 0x03ed);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x16, 0x0000);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x18, 0x7705);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
                      
                      ///////////////////////////////////////////////////////////////////
                      // Power Setting Function 2
                      ///////////////////////////////////////////////////////////////////
                      WriteSPI(0x10, 0x0004);  //R07 <--0000h
                              
                      // delay about 150ms --180ms
                      delay(15);
                      
                      ///////////////////////////////////////////////////////////////////
                      // Display Setting Function 
                      ///////////////////////////////////////////////////////////////////
                      WriteSPI(0x01, 0x0000);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x02, 0x0300);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x03, 0x0001);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x04, 0x0001);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x05, 0x000a);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x06, 0x0014);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x0b, 0x0200);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x0c, 0x0200);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x0e, 0x0000);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x0f, 0x0000);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x20, 0x0000);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x21, 0x0700);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x2a, 0x0000);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x2b, 0x0000);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x30, 0x0000);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x31, 0x0000);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x32, 0x0907);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x33, 0x0907);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x34, 0x0001);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
C51 COMPILER V7.50   SPI                                                                   04/01/2008 15:02:33 PAGE 3   

                      WriteSPI(0x35, 0x0001);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x36, 0x0c06);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x37, 0x0c06);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x38, 0x1f00);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
                      WriteSPI(0x39, 0x1f00);  //R07 <--0000h
                      SPIdelay(50);  //delay about 25us
              
                      // delay about 40ms     -- 48ms         
                      delay(4);               
              
                      ///////////////////////////////////////////////////////////////////
                      // Power On Status---Display On Function 1
                      ///////////////////////////////////////////////////////////////////
                      WriteSPI(0x07, 0x0001);  //R07 <--0000h
                      
                      // delay about 40ms     -- 48ms         
                      delay(4);               
                      
                      ///////////////////////////////////////////////////////////////////
                      // Power On Status---Display On Function 1
                      ///////////////////////////////////////////////////////////////////
                      WriteSPI(0x07, 0x0101);  //R07 <--0000h
                              
                      // delay about 40ms     -- 48ms         
                      delay(4);               
                      
                      ///////////////////////////////////////////////////////////////////
                      // Power On Status---Display On Function 2
                      ///////////////////////////////////////////////////////////////////
                      WriteSPI(0x07, 0x0103);  //R07 <--0000h
              
              }
              
              
              void SPIdelay(BYTE d)
              {
                       BYTE i;
                       for(i=0; i<d; i++){
                       }
              }
              
              void WriteSPI(BYTE addr, WORD dat)
              {
                      //volatile S3C2413_IOPORT_REG *s2413IOP = (S3C2413_IOPORT_REG *)OALPAtoVA(S3C2413_BASE_REG_PA_IOPORT, FAL
             -SE);
                      int      j;
                      //unsigned char DELAY=100;
                      unsigned char DELAY=1; // delay about 1us
                      DWORD xAddress, xData;
                      
                      xAddress =      0x00600000L|(0x000000ffL & addr);
                      xData =         0x00620000L|(0x0000ffffL & dat);
                      
                      ///////////////////////address
                      SPI_CS_EN; //SPI_CS     = 1;            //      EN = High                                       CS high
                      SPI_SCL=1;                                                      //      SCL High
                      SPI_SDA = 1;                                                    //      Data High
              
C51 COMPILER V7.50   SPI                                                                   04/01/2008 15:02:33 PAGE 4   

                      SPIdelay(DELAY); // delay about 1us
              
                      SPI_CS_DS; //SPI_CS     = 0;            //      EN = Low                                CS Low
                      SPIdelay(DELAY);// delay about 1us
              
                      SPI_SCL = 0;                                                    //      SCL Low
                      SPIdelay(DELAY);// delay about 1us
                      
                      for (j = 23; j >= 0; j--)//17
                      {
              
                              if ((xAddress >> j) & 0x00000001L)      // DATA HIGH or LOW

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -