I2C.h
上传用户:hjhsjcl
上传日期:2020-09-25
资源大小:11378k
文件大小:4k
源码类别:

压缩解压

开发平台:

C++ Builder

  1. /*==========================================================================
  2. Copyright (c) 2004 ALi Corporation. All Rights Reserved
  3. Target : FM
  4. Applying Source File : FmM5181.c, FmTEA5767.c
  5. content: 
  6. History: 
  7. Created by David Chiu 2004/4/27
  8. Created by Dennis Shih 2006/01/16
  9. ==========================================================================*/
  10. #if(FM_MODULE==2)
  11. #define i2c_large_test large //matt test for save code
  12. #ifndef  I2C_H
  13. #define  I2C_H
  14. #ifdef       I2C_GLOBALS
  15. #define      I2C_EXT
  16. #else       
  17. #define      I2C_EXT extern      
  18. #endif 
  19. #define  I2C_FEEDDOG  0
  20. #define I2C_LCD 1
  21. #define I2C_FM 2
  22. #define I2C_LCD_WR_CMD 0x70
  23. #define I2C_LCD_WR_DATA 0x72
  24. #define I2C_LCD_RD_CMD 0x71
  25. #define I2C_LCD_RD_DATA 0x73
  26. //#define I2C_FM_WR_CMD 0x70
  27. #define I2C_FM_WR_DATA 0x20
  28. //#define I2C_FM_RD_CMD 0x71
  29. #define I2C_FM_RD_DATA 0x21
  30. #define I2C_LCD_SCL_DAT obGPIOCDAT
  31. #define I2C_LCD_SCL_DIR obGPIOCDIR
  32. #define I2C_LCD_SCL_BIT 5
  33. #define I2C_LCD_SDA_DAT obGPIOCDAT
  34. #define I2C_LCD_SDA_DIR obGPIOCDIR
  35. #define I2C_LCD_SDA_BIT 6
  36. #define I2C_FM_SCL_DAT obGPIOHDAT
  37. #define I2C_FM_SCL_DIR obGPIOHDIR
  38. #define I2C_FM_SCL_BIT 5
  39. #define I2C_FM_SDA_DAT obGPIOHDAT
  40. #define I2C_FM_SDA_DIR obGPIOHDIR
  41. #define I2C_FM_SDA_BIT 6
  42. #define  I2C_LCD_SCL_1()
  43. {
  44. I2C_LCD_SCL_DAT |= (1<<I2C_LCD_SCL_BIT);
  45. #define  I2C_FM_SCL_1()
  46. {
  47. I2C_FM_SCL_DAT |= (1<<I2C_FM_SCL_BIT);
  48. }
  49. #define  I2C_LCD_SCL_0()
  50. {
  51. I2C_LCD_SCL_DAT &= ~(1<<I2C_LCD_SCL_BIT); 
  52. #define  I2C_FM_SCL_0()
  53. {
  54. I2C_FM_SCL_DAT &= ~(1<<I2C_FM_SCL_BIT);
  55. }
  56. #define  I2C_LCD_SDA_1()
  57. {
  58. I2C_LCD_SDA_DAT |= (1<<I2C_LCD_SDA_BIT);
  59. #define  I2C_FM_SDA_1()
  60. {
  61. I2C_FM_SDA_DAT |= (1<<I2C_FM_SDA_BIT);
  62. }
  63. #define  I2C_LCD_SDA_0()
  64. {
  65. I2C_LCD_SDA_DAT &= ~(1<<I2C_LCD_SDA_BIT); 
  66. #define  I2C_FM_SDA_0()
  67. {
  68. I2C_FM_SDA_DAT &= ~(1<<I2C_FM_SDA_BIT);
  69. }
  70. #define  I2C_LCD_SCL_IN()
  71. {
  72. I2C_LCD_SCL_DIR &= ~(1<<I2C_LCD_SCL_BIT); 
  73. #define  I2C_FM_SCL_IN()
  74. {
  75. I2C_FM_SCL_DIR &= ~(1<<I2C_FM_SCL_BIT);
  76. }
  77. #define  I2C_LCD_SCL_OUT()
  78. {
  79. I2C_LCD_SCL_DIR |= (1<<I2C_LCD_SCL_BIT);
  80. #define  I2C_FM_SCL_OUT()
  81. {
  82. I2C_FM_SCL_DIR |= (1<<I2C_FM_SCL_BIT);
  83. #define  I2C_LCD_SDA_IN()
  84. {
  85. I2C_LCD_SDA_DIR &= ~(1<<I2C_LCD_SDA_BIT); 
  86. #define  I2C_FM_SDA_IN()
  87. {
  88. I2C_FM_SDA_DIR &= ~(1<<I2C_FM_SDA_BIT);
  89. }
  90. #define  I2C_LCD_SDA_OUT()
  91. {
  92. I2C_LCD_SDA_DIR |= (1<<I2C_LCD_SDA_BIT);
  93. #define  I2C_FM_SDA_OUT()
  94. {
  95. I2C_FM_SDA_DIR |= (1<<I2C_FM_SDA_BIT);
  96. }
  97. #define  I2C_LCD_SDA_RD
  98. (
  99. I2C_LCD_SDA_DAT & (1<<I2C_LCD_SDA_BIT) 
  100. #define  I2C_FM_SDA_RD
  101. (
  102. I2C_FM_SDA_DAT & (1<<I2C_FM_SDA_BIT)
  103.  
  104. I2C_EXT void init_i2c(BYTE device) i2c_large_test;
  105. I2C_EXT BYTE i2c_wr(BYTE device, BYTE sla_addr, BYTE length, BYTE * buff) i2c_large_test;
  106. I2C_EXT BYTE i2c_rd(BYTE device, BYTE sla_addr, BYTE length, BYTE * buff) i2c_large_test;
  107. I2C_EXT BYTE i2c_rd1(BYTE device, BYTE sla_addr, BYTE length, BYTE * buff) i2c_large_test;
  108. I2C_EXT void i2c_clock (BYTE device) i2c_large_test;
  109. #endif 
  110. #if (_PEDOMETER_Mode_)
  111. #define EXTERN extern
  112. EXTERN void I2cInit(void);
  113. EXTERN bit I2cWaitBusy(void);
  114. #undef EXTERN
  115. #endif
  116. #else//#if(FM_MODULE==2)
  117. #ifdef _I2C_H_
  118. #define EXTERN
  119. #else
  120. #define EXTERN extern
  121. #endif
  122. //These functions will be applied at "FmM5181.c" or "FmTEA5767.c" function.
  123. #if (_PEDOMETER_Mode_|_PM_FM_)
  124. EXTERN void I2cInit(void);
  125. EXTERN bit I2cWaitBusy(void);
  126. #endif
  127. #undef EXTERN
  128. #endif//#if(FM_MODULE==2)