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

📄 twowire.lst

📁 T112 MCU源程码,用于T112外接MCU篇程,用来驱动模拟屏
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.06   TWOWIRE                                                               03/01/2007 08:05:39 PAGE 6   

 303   1                                          StopCondition();
 304   1                                                      return cResult;
 305   1                                      }
 306                                          //---------------------------------------------------
 307          
 308                                          //--------------------------------------------------
 309                                          // Write Byte to Device
 310                                          //--------------------------------------------------
 311                                          
 312                                          uCHAR I2CWriteByte(uCHAR cDevAddr, uCHAR cReg, uCHAR cData)
 313                                          {
 314   1                                      
 315   1                                      
 316   1                                          /* start condition */
 317   1                                          StartCondition();
 318   1                                              cDevAddr &= 0xFE;   // Force WRITE address
 319   1                                          /* send device ID and write data */
 320   1                                          if(!Send_Byte(cDevAddr))
 321   1                                          {
 322   2                                              if(!Send_Byte(cReg))
 323   2                                              {
 324   3                                                  if(!Send_Byte(cData))
 325   3                                                  {
 326   4                                                      StopCondition();
 327   4                                                      return(0);      /* success */
 328   4                                                  }
 329   3                                              }
 330   2                                          }
 331   1                                          StopCondition();
 332   1                                          return(1);
 333   1                                      }
 334          
 335                                          //--------------------------------------------------
 336                                          // 041901, Added for TWD Burst Write
 337                                          // 1. PT8655X_Wr_Burst_A    (Start + Slave_ID + Address)
 338                                          // 2. PT8655X_Wr_Burst_D    (Data)
 339                                          // 3. PT8655X_Wr_Burst_P    (stop)
 340                                          //--------------------------------------------------
 341          
 342                                          uCHAR twdWr_Burst_A(uCHAR cReg)
 343                                          {
 344   1                                          StartCondition();
 345   1                                          if(!Send_Byte(TW101))
 346   1                                          {
 347   2                                              if(!Send_Byte(cReg))
 348   2                                              {
 349   3                                                  return(0);               //
 350   3                                              }
 351   2                                          }
 352   1                                          return(1);                  //
 353   1                                      }
 354          
 355                                          void twdWr_Burst_D(uCHAR cData)
 356                                          {
 357   1                                          uCHAR ix;
 358   1                                      //uCHAR cAcknowledge;
 359   1                                      //    uCHAR cTWtrytime=0;
 360   1                                      //    cAcknowledge = 0;
 361   1                                      
 362   1                                          for(ix = 0; ix < 8; ix++)
 363   1                                          {
 364   2                                              Set_SCL2Low;
C51 COMPILER V7.06   TWOWIRE                                                               03/01/2007 08:05:39 PAGE 7   

 365   2                                              if(cData&0x80)Set_SDA2High;
 366   2                                                      else Set_SDA2Low;
 367   2                                                      cData<<=1;
 368   2                                              Set_SCL2High;
 369   2                                          }
 370   1                                          Set_SCL2Low;
 371   1                                          Set_SDA2High;                // release data line for acknowledge 
 372   1                                          Set_SCL2High;                // Send a clock for Acknowledge 
 373   1                                      //    if(SDA_High) cAcknowledge = 1; // No Acknowledge 
 374   1                                          Set_SCL2Low;                   // Finish Acknoledge 
 375   1                                      
 376   1                                      //    return(cAcknowledge);
 377   1                                      
 378   1                                      }
 379                  //                      #endif                          
 380                                          void twdWr_Burst_P(void)
 381                                          {
 382   1                                          StopCondition();
 383   1                                      }
 384                  /*                      
 385                                          //twdWriteTable() is used for burst write for
 386                                          //any I2C standar device
 387                                          #if VIDEO_AVAILABLE
 388                                          #ifdef VIDEO_SAA7114
 389                                          #define EOT     -1
 390                                          BOOL twdWriteTable(uCHAR cDevAddr, char *pString)
 391                                          {
 392                                                  uCHAR  cReg=0;
 393                                                  uCHAR  cNum=0;
 394                                                  while(*pString != EOT)
 395                                                  {
 396                                                          cReg = *pString++;
 397                                                          cNum = *pString++;
 398                                                  if(!I2CWriteBytes(cDevAddr, cReg, cNum, pString))
 399                                                                  break;
 400                                                          else
 401                                                                  pString += cNum;
 402                                                  }
 403                                          }
 404                                          #endif
 405                                          #endif
 406                  */              
 407                                          //--------------------------------------------------
 408                                          // Read Multiple Bytes to Device
 409                                          //--------------------------------------------------
 410                  /*                      
 411                                          void twdDelay(uWORD wLoops)
 412                                          {
 413                                                  uWORD wTemp;
 414                                          
 415                                              while (wLoops--) {
 416                                                      wTemp = 1000/6;     // one loop below takes about 11 us
 417                                                  while (wTemp--);
 418                                              }
 419                                          }
 420                                          
 421                                  */      
 422                                          void twdDelay1(uWORD wLoops)
 423                                          {
 424   1                                              uWORD wTemp;
 425   1                                      
 426   1                                          while (wLoops--) {
C51 COMPILER V7.06   TWOWIRE                                                               03/01/2007 08:05:39 PAGE 8   

 427   2                                                  wTemp = 1000/6;     // one loop below takes about 11 us
 428   2                                              while (wTemp--);
 429   2                                          }                                   
 430   1                                      }
 431                                          
 432                                          // OSD config register Write
 433                                          void OSDCfgWr(uCHAR index,uCHAR dat)            ///OSD_CFG_INDEX=0xa0;
 434                                          {
 435   1                                       I2CWriteByte(TW101,OSD_CFG_INDEX,index);
 436   1                                       I2CWriteByte(TW101,OSD_CFG_DATA,dat);
 437   1                                      }
 438          
 439          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    526    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       3
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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