Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Z
ZhongTong-ZR5-A
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵康弘
ZhongTong-ZR5-A
Commits
f1662d0a
Commit
f1662d0a
authored
May 10, 2025
by
赵康弘
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
perf: TCA9539完成硬件联调
parent
4c2bb47e
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
244 additions
and
205 deletions
+244
-205
TCA9539.c
GHS/App/TCA9539.c
+70
-14
TCA9539.h
GHS/App/TCA9539.h
+3
-0
Simulated_IIC_2_Master.c
GHS/Driver/Simulated_IIC_2_Master.c
+152
-160
Simulated_IIC_2_Master.h
GHS/Driver/Simulated_IIC_2_Master.h
+3
-11
Sys_Task_List.c
GHS/System/Sys_Task_List.c
+16
-20
No files found.
GHS/App/TCA9539.c
View file @
f1662d0a
#include "TCA9539.h"
#include "Simulated_IIC_2_Master.h"
/*发送*/
void
TCA9539_IIC_Send
(
uint8_t
Address
,
uint8_t
Register
,
uint8_t
Function
)
void
TCA9539_IIC_Send
(
uint8_t
Address
,
uint8_t
Register
,
uint8_t
Function
)
{
uint8_t
u8Ack
;
/*开始*/
Simulated_IIC_2_Start
();
/*地址*/
Simulated_IIC_2_Transmit_Data
(
Address
);
/*ACK*/
u8Ack
=
Simulated_IIC_2_Receive_ACK
();
/*寄存器*/
Simulated_IIC_2_Transmit_Data
(
Register
);
/*控制数据*/
Simulated_IIC_2_Transmit_Data
(
Function
);
/*停止*/
Simulated_IIC_2_Stop
();
/*开始*/
Simulated_IIC_2_Start
();
/*地址*/
Simulated_IIC_2_Transmit_Data
(
Address
);
/*ACK*/
u8Ack
=
Simulated_IIC_2_Receive_ACK
();
/*寄存器*/
Simulated_IIC_2_Transmit_Data
(
Register
);
/*控制数据*/
Simulated_IIC_2_Transmit_Data
(
Function
);
/*停止*/
Simulated_IIC_2_Stop
();
}
/*接收*/
void
TCA9539_IIC_Receive
(
void
)
...
...
@@ -25,14 +24,71 @@ void TCA9539_IIC_Receive(void)
;
}
uint16_t
ADC_4
=
0
;
uint8_t
TCA9539_Init_Once
=
0
;
/*所有引脚设置为输出*/
void
TCA9539_Init
(
void
);
void
TCA9539_Init
(
void
)
{
TCA9539_IIC_Send
(
0xEA
,
0x06
,
0
);
TCA9539_IIC_Send
(
0xEA
,
0x07
,
0
);
TCA9539_IIC_Send
(
0xE8
,
0x06
,
0
);
TCA9539_IIC_Send
(
0xE8
,
0x07
,
0
);
}
uint8_t
TCA9539_U7_Out_P0
=
0xFF
;
uint8_t
TCA9539_U7_Out_Keep_P0
=
0x00
;
uint8_t
TCA9539_U7_Out_P1
=
0xFF
;
uint8_t
TCA9539_U7_Out_Keep_P1
=
0x00
;
uint8_t
TCA9539_U9_Out_P0
=
0xFF
;
uint8_t
TCA9539_U9_Out_Keep_P0
=
0x00
;
uint8_t
TCA9539_U9_Out_P1
=
0xFF
;
uint8_t
TCA9539_U9_Out_Keep_P1
=
0x00
;
void
TCA9539_Control
(
void
)
{
if
(
TCA9539_Init_Once
==
0
)
{
TCA9539_Init_Once
=
1
;
TCA9539_Init
();
}
if
(
ADC_4
>
2000
)
/*U9:03/07拉低*/
{
TCA9539_U9_Out_P0
=
0x77
;
}
// if (ADC_4 < 1800) /*U9:03/07恢复*/
// {
// TCA9539_U9_Out_P0 = 0xFF;
// }
if
(
TCA9539_U7_Out_Keep_P0
!=
TCA9539_U7_Out_P0
)
{
TCA9539_IIC_Send
(
0xEA
,
0x02
,
TCA9539_U7_Out_P0
);
TCA9539_U7_Out_Keep_P0
=
TCA9539_U7_Out_P0
;
}
if
(
TCA9539_U7_Out_Keep_P1
!=
TCA9539_U7_Out_P1
)
{
TCA9539_IIC_Send
(
0xEA
,
0x02
,
TCA9539_U7_Out_P1
);
TCA9539_U7_Out_Keep_P1
=
TCA9539_U7_Out_P1
;
}
if
(
TCA9539_U9_Out_Keep_P0
!=
TCA9539_U9_Out_P0
)
{
TCA9539_IIC_Send
(
0xE8
,
0x02
,
TCA9539_U9_Out_P0
);
TCA9539_U9_Out_Keep_P0
=
TCA9539_U9_Out_P0
;
}
if
(
TCA9539_U9_Out_Keep_P1
!=
TCA9539_U9_Out_P1
)
{
TCA9539_IIC_Send
(
0xE8
,
0x02
,
TCA9539_U9_Out_P1
);
TCA9539_U9_Out_Keep_P1
=
TCA9539_U9_Out_P1
;
}
}
GHS/App/TCA9539.h
View file @
f1662d0a
#include "TYW_stdint.h"
extern
uint16_t
ADC_4
;
void
TCA9539_IIC_Send
(
uint8_t
Address
,
uint8_t
Register
,
uint8_t
Function
);
void
TCA9539_Control
(
void
);
GHS/Driver/Simulated_IIC_2_Master.c
View file @
f1662d0a
/******************************************************************************
文 件 名:Simulated_IIC_Master.c
功能描述:IO端口模拟的IIC(I2C)主机函数库文件
作 者:张暄
版 本:V1.0
日 期:2016.12.21
******************************************************************************/
#include "Simulated_IIC_2_Master.h"
#include "Port_Cfg.h"
#include "Port.h"
...
...
@@ -43,9 +35,9 @@ void TCA9539_Data_Input(void)
uint8_t
TCA9539_Data_Input_Value
(
void
)
{
uint8_t
Data
;
Data
=
Dio_ReadChannel
(
Port_Config_PortGroup22_PortPin3
);
Data
=
Dio_ReadChannel
(
Port_Config_PortGroup22_PortPin3
);
return
Data
;
}
/*数据输出低*/
...
...
@@ -63,17 +55,17 @@ void TCA9539_Data_Output_Low(void)
******************************************************************************/
void
Simulated_IIC_2_Init
(
void
)
{
// SIMULATED_IIC_2_SCL_DIR = GPIO_DIR_IN; // SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1
TCA9539_Clock_Input
();
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
// SIMULATED_IIC_2_SCL_DIR = GPIO_DIR_IN; // SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1
TCA9539_Clock_Input
();
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
// SIMULATED_IIC_2_SDA_DIR = GPIO_DIR_IN; // SDA被设置为输入,IO口为高阻状态,总线上SDA信号由上拉电阻拉高,此时SDA = 1
TCA9539_Data_Input
();
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
// SIMULATED_IIC_2_SDA_DIR = GPIO_DIR_IN; // SDA被设置为输入,IO口为高阻状态,总线上SDA信号由上拉电阻拉高,此时SDA = 1
TCA9539_Data_Input
();
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
u8SimulatedIIC2ReceivedACK
=
SIMULATED_IIC_2_INVALID_ACK
;
u8SimulatedIIC2ReceivedACK
=
SIMULATED_IIC_2_INVALID_ACK
;
}
/******************************************************************************
...
...
@@ -84,28 +76,28 @@ void Simulated_IIC_2_Init(void)
******************************************************************************/
void
Simulated_IIC_2_Start
(
void
)
{
u8SimulatedIIC2ReceivedACK
=
SIMULATED_IIC_2_INVALID_ACK
;
// SIMULATED_IIC_2_SDA_DIR = GPIO_DIR_IN; // SDA被设置为输入,IO口为高阻状态,总线上SDA信号由上拉电阻拉高,此时SDA = 1
TCA9539_Data_Input
();
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
// SIMULATED_IIC_2_SCL_DIR = GPIO_DIR_IN; // SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1
TCA9539_Clock_Input
();
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
// SIMULATED_IIC_2_SDA_DIR = GPIO_DIR_OUT; // SDA输出0,此时SDA = 0
// SIMULATED_IIC_2_OUT_SDA = 0;
TCA9539_Data_Output_Low
();
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
// SIMULATED_IIC_2_SCL_DIR = GPIO_DIR_OUT; // SCL输出0,此时SCL = 0
// SIMULATED_IIC_2_SCL = 0;
TCA9539_Clock_Output
();
Simulated_IIC_2_Delay
(
);
u8SimulatedIIC2ReceivedACK
=
SIMULATED_IIC_2_INVALID_ACK
;
// SIMULATED_IIC_2_SDA_DIR = GPIO_DIR_IN; // SDA被设置为输入,IO口为高阻状态,总线上SDA信号由上拉电阻拉高,此时SDA = 1
TCA9539_Data_Input
();
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
// SIMULATED_IIC_2_SCL_DIR = GPIO_DIR_IN; // SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1
TCA9539_Clock_Input
();
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
// SIMULATED_IIC_2_SDA_DIR = GPIO_DIR_OUT; // SDA输出0,此时SDA = 0
// SIMULATED_IIC_2_OUT_SDA = 0;
TCA9539_Data_Output_Low
();
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
// SIMULATED_IIC_2_SCL_DIR = GPIO_DIR_OUT; // SCL输出0,此时SCL = 0
// SIMULATED_IIC_2_SCL = 0;
TCA9539_Clock_Output
();
Simulated_IIC_2_Delay
(
);
}
/******************************************************************************
...
...
@@ -116,23 +108,23 @@ void Simulated_IIC_2_Start(void)
******************************************************************************/
void
Simulated_IIC_2_Stop
(
void
)
{
u8SimulatedIIC2ReceivedACK
=
SIMULATED_IIC_2_INVALID_ACK
;
// SIMULATED_IIC_2_SDA_DIR = GPIO_DIR_OUT; // SDA输出0,此时SDA = 0
// SIMULATED_IIC_2_OUT_SDA = 0;
TCA9539_Data_Output_Low
();
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
// SIMULATED_IIC_2_SCL_DIR = GPIO_DIR_IN; // SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1
TCA9539_Clock_Input
();
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
// SIMULATED_IIC_2_SDA_DIR = GPIO_DIR_IN; // SDA被设置为输入,IO口为高阻状态,总线上SDA信号由上拉电阻拉高,此时SDA = 1
TCA9539_Data_Input
();
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
u8SimulatedIIC2ReceivedACK
=
SIMULATED_IIC_2_INVALID_ACK
;
// SIMULATED_IIC_2_SDA_DIR = GPIO_DIR_OUT; // SDA输出0,此时SDA = 0
// SIMULATED_IIC_2_OUT_SDA = 0;
TCA9539_Data_Output_Low
();
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
// SIMULATED_IIC_2_SCL_DIR = GPIO_DIR_IN; // SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1
TCA9539_Clock_Input
();
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
// SIMULATED_IIC_2_SDA_DIR = GPIO_DIR_IN; // SDA被设置为输入,IO口为高阻状态,总线上SDA信号由上拉电阻拉高,此时SDA = 1
TCA9539_Data_Input
();
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
}
/******************************************************************************
...
...
@@ -143,56 +135,56 @@ void Simulated_IIC_2_Stop(void)
******************************************************************************/
void
Simulated_IIC_2_Transmit_Data
(
uint8_t
Data
)
{
uint8_t
i
;
uint8_t
i
;
u8SimulatedIIC2ReceivedACK
=
SIMULATED_IIC_2_INVALID_ACK
;
u8SimulatedIIC2ReceivedACK
=
SIMULATED_IIC_2_INVALID_ACK
;
for
(
i
=
0
;
i
<
8
;
i
++
)
for
(
i
=
0
;
i
<
8
;
i
++
)
{
if
((
Data
&
0x80
)
!=
0U
)
{
if
(
(
Data
&
0x80
)
!=
0U
)
{
// SIMULATED_IIC_2_SDA_DIR = GPIO_DIR_IN; // SDA被设置为输入,IO口为高阻状态,总线上SDA信号由上拉电阻拉高,此时SDA = 1
TCA9539_Data_Input
();
}
else
{
// SIMULATED_IIC_2_SDA_DIR = GPIO_DIR_OUT; // SDA输出0,此时SDA = 0
// SIMULATED_IIC_2_OUT_SDA = 0;
TCA9539_Data_Output_Low
();
}
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
// SIMULATED_IIC_2_SCL_DIR = GPIO_DIR_IN; // SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1
TCA9539_Clock_Input
();
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
// SIMULATED_IIC_2_SCL_DIR = GPIO_DIR_OUT; // SCL输出0,此时SCL = 0
// SIMULATED_IIC_2_SCL = 0;
TCA9539_Clock_Output
();
Simulated_IIC_2_Delay
(
);
Data
<<=
1
;
// SIMULATED_IIC_2_SDA_DIR = GPIO_DIR_IN; // SDA被设置为输入,IO口为高阻状态,总线上SDA信号由上拉电阻拉高,此时SDA = 1
TCA9539_Data_Input
();
}
// SIMULATED_IIC_2_SDA_DIR = GPIO_DIR_IN; // 设置SDA为输入状态
TCA9539_Data_Input
();
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
else
{
// SIMULATED_IIC_2_SDA_DIR = GPIO_DIR_OUT; // SDA输出0,此时SDA = 0
// SIMULATED_IIC_2_OUT_SDA = 0;
TCA9539_Data_Output_Low
();
}
Simulated_IIC_2_Delay
();
Simulated_IIC_2_Delay
();
// SIMULATED_IIC_2_SCL_DIR = GPIO_DIR_IN; // SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1
TCA9539_Clock_Input
();
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
// u8SimulatedIIC2ReceivedACK = SIMULATED_IIC_2_IN_SDA;
u8SimulatedIIC2ReceivedACK
=
TCA9539_Data_Input_Value
();
Simulated_IIC_2_Delay
();
Simulated_IIC_2_Delay
();
// SIMULATED_IIC_2_SCL_DIR = GPIO_DIR_OUT; // SCL输出0,此时SCL = 0
// SIMULATED_IIC_2_SCL = 0;
TCA9539_Clock_Output
();
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
();
Data
<<=
1
;
}
// SIMULATED_IIC_2_SDA_DIR = GPIO_DIR_IN; // 设置SDA为输入状态
TCA9539_Data_Input
();
Simulated_IIC_2_Delay
();
Simulated_IIC_2_Delay
();
// SIMULATED_IIC_2_SCL_DIR = GPIO_DIR_IN; // SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1
TCA9539_Clock_Input
();
Simulated_IIC_2_Delay
();
Simulated_IIC_2_Delay
();
// u8SimulatedIIC2ReceivedACK = SIMULATED_IIC_2_IN_SDA;
u8SimulatedIIC2ReceivedACK
=
TCA9539_Data_Input_Value
();
// SIMULATED_IIC_2_SCL_DIR = GPIO_DIR_OUT; // SCL输出0,此时SCL = 0
// SIMULATED_IIC_2_SCL = 0;
TCA9539_Clock_Output
();
Simulated_IIC_2_Delay
();
}
/******************************************************************************
...
...
@@ -203,37 +195,37 @@ void Simulated_IIC_2_Transmit_Data(uint8_t Data)
******************************************************************************/
uint8_t
Simulated_IIC_2_Receive_Data
(
void
)
{
uint8_t
i
;
uint8_t
Data
;
uint8_t
i
;
uint8_t
Data
;
Data
=
0
;
Data
=
0
;
// SIMULATED_IIC_2_SDA_DIR = GPIO_DIR_IN; // 设置SDA为输入状态
TCA9539_Data_Input
();
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
// SIMULATED_IIC_2_SDA_DIR = GPIO_DIR_IN; // 设置SDA为输入状态
TCA9539_Data_Input
();
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
for
(
i
=
0
;
i
<
8
;
i
++
)
{
Data
<<=
1
;
// SIMULATED_IIC_2_SCL_DIR = GPIO_DIR_IN; // SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1
TCA9539_Clock_Input
();
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
// Data |= SIMULATED_IIC_2_IN_SDA;
Data
|=
TCA9539_Data_Input_Value
();
// SIMULATED_IIC_2_SCL_DIR = GPIO_DIR_OUT; // SCL输出0,此时SCL = 0
// SIMULATED_IIC_2_SCL = 0;
TCA9539_Clock_Output
();
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
}
for
(
i
=
0
;
i
<
8
;
i
++
)
{
Data
<<=
1
;
return
Data
;
// SIMULATED_IIC_2_SCL_DIR = GPIO_DIR_IN; // SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1
TCA9539_Clock_Input
();
Simulated_IIC_2_Delay
();
Simulated_IIC_2_Delay
();
Simulated_IIC_2_Delay
();
// Data |= SIMULATED_IIC_2_IN_SDA;
Data
|=
TCA9539_Data_Input_Value
();
// SIMULATED_IIC_2_SCL_DIR = GPIO_DIR_OUT; // SCL输出0,此时SCL = 0
// SIMULATED_IIC_2_SCL = 0;
TCA9539_Clock_Output
();
Simulated_IIC_2_Delay
();
Simulated_IIC_2_Delay
();
}
return
Data
;
}
/******************************************************************************
...
...
@@ -245,35 +237,35 @@ uint8_t Simulated_IIC_2_Receive_Data(void)
******************************************************************************/
void
Simulated_IIC_2_Transmit_ACK
(
uint8_t
ACK
)
{
u8SimulatedIIC2ReceivedACK
=
SIMULATED_IIC_2_INVALID_ACK
;
u8SimulatedIIC2ReceivedACK
=
SIMULATED_IIC_2_INVALID_ACK
;
if
(
ACK
>
SIMULATED_IIC_2_NAK
)
{
return
;
}
if
(
ACK
>
SIMULATED_IIC_2_NAK
)
{
return
;
}
if
(
ACK
!=
0U
)
{
// SIMULATED_IIC_2_SDA_DIR = GPIO_DIR_IN; // SDA被设置为输入,IO口为高阻状态,总线上SDA信号由上拉电阻拉高,此时SDA = 1
if
(
ACK
!=
0U
)
{
// SIMULATED_IIC_2_SDA_DIR = GPIO_DIR_IN; // SDA被设置为输入,IO口为高阻状态,总线上SDA信号由上拉电阻拉高,此时SDA = 1
TCA9539_Data_Input
();
}
else
{
// SIMULATED_IIC_2_SDA_DIR = GPIO_DIR_OUT; // SDA输出0,此时SDA = 0
// SIMULATED_IIC_2_OUT_SDA = 0;
TCA9539_Data_Output_Low
();
}
Simulated_IIC_2_Delay
(
);
// SIMULATED_IIC_2_SCL_DIR = GPIO_DIR_IN; // SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1
TCA9539_Clock_Input
();
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
// SIMULATED_IIC_2_SCL_DIR = GPIO_DIR_OUT; // SCL输出0,此时SCL = 0
// SIMULATED_IIC_2_SCL = 0;
TCA9539_Clock_Output
();
Simulated_IIC_2_Delay
(
);
}
else
{
// SIMULATED_IIC_2_SDA_DIR = GPIO_DIR_OUT; // SDA输出0,此时SDA = 0
// SIMULATED_IIC_2_OUT_SDA = 0;
TCA9539_Data_Output_Low
();
}
Simulated_IIC_2_Delay
(
);
// SIMULATED_IIC_2_SCL_DIR = GPIO_DIR_IN; // SCL被设置为输入,IO口为高阻状态,总线上SCL信号由上拉电阻拉高,此时SCL = 1
TCA9539_Clock_Input
();
Simulated_IIC_2_Delay
(
);
Simulated_IIC_2_Delay
(
);
// SIMULATED_IIC_2_SCL_DIR = GPIO_DIR_OUT; // SCL输出0,此时SCL = 0
// SIMULATED_IIC_2_SCL = 0;
TCA9539_Clock_Output
();
Simulated_IIC_2_Delay
(
);
}
/******************************************************************************
...
...
@@ -286,12 +278,12 @@ void Simulated_IIC_2_Transmit_ACK(uint8_t ACK)
******************************************************************************/
uint8_t
Simulated_IIC_2_Receive_ACK
(
void
)
{
uint8_t
ACK
;
uint8_t
ACK
;
ACK
=
u8SimulatedIIC2ReceivedACK
;
u8SimulatedIIC2ReceivedACK
=
SIMULATED_IIC_2_INVALID_ACK
;
ACK
=
u8SimulatedIIC2ReceivedACK
;
u8SimulatedIIC2ReceivedACK
=
SIMULATED_IIC_2_INVALID_ACK
;
return
ACK
;
return
ACK
;
}
/******************************************************************************
...
...
@@ -303,10 +295,10 @@ uint8_t Simulated_IIC_2_Receive_ACK(void)
******************************************************************************/
void
Simulated_IIC_2_Delay
(
void
)
{
uint8_t
i
;
uint8_t
i
;
for
(
i
=
0
;
i
<
SIMULATED_IIC_2_FREQ_CALIBRATION
;
i
++
)
{
NOP
(
);
}
for
(
i
=
0
;
i
<
SIMULATED_IIC_2_FREQ_CALIBRATION
;
i
++
)
{
NOP
(
);
}
}
GHS/Driver/Simulated_IIC_2_Master.h
View file @
f1662d0a
/******************************************************************************
文 件 名:Simulated_IIC_Master.h
功能描述:IO端口模拟的IIC(I2C)主机函数库头文件
作 者:张暄
版 本:V1.0
日 期:2016.12.21
******************************************************************************/
#ifndef SIMULATED_IIC_2_MASTER_H__
#define SIMULATED_IIC_2_MASTER_H__
...
...
@@ -19,9 +11,9 @@
/******************************************************************************
确认信号
******************************************************************************/
#define SIMULATED_IIC_2_ACK 0U //肯定应答
#define SIMULATED_IIC_2_NAK 1U //否定应答
#define SIMULATED_IIC_2_INVALID_ACK 2U //无效的应答信号(应答信号还未收到)
#define SIMULATED_IIC_2_ACK 0U //
肯定应答
#define SIMULATED_IIC_2_NAK 1U //
否定应答
#define SIMULATED_IIC_2_INVALID_ACK 2U //
无效的应答信号(应答信号还未收到)
/******************************************************************************
函数声明
...
...
GHS/System/Sys_Task_List.c
View file @
f1662d0a
...
...
@@ -76,9 +76,6 @@ uint16_t ADC_Input_Voltage_Calc(uint16_t u16ADCSample, uint16_t u16ADCRes, uint1
return
u16Result
;
}
uint8_t
aaaaaaData
;
uint8_t
abbaaaData
;
uint8_t
sdfa
=
0
;
void
Sys_100ms_Tasks
(
void
)
{
// Dio_FlipChannel(DioConf_DioChannel_P56DioChannel);
...
...
@@ -87,28 +84,27 @@ void Sys_100ms_Tasks(void)
// if (g_u8secstatus == 10)
// {
// g_u8secstatus = 0;
g_u8cnt
++
;
//
g_u8cnt++;
// }
Dio_FlipChannel
(
DioConf_DioChannel_P02_08
);
Dio_FlipChannel
(
DioConf_DioChannel_P02_08
);
/* Starts the conversion of group */
Adc_StartGroupConversion
(
AdcConf_AdcGroup_AdcGroup_000
);
/* Starts the conversion of group */
Adc_StartGroupConversion
(
AdcConf_AdcGroup_AdcGroup_000
);
while
(
ADC_STREAM_COMPLETED
!=
Adc_GetGroupStatus
(
AdcConf_AdcGroup_AdcGroup_000
));
while
(
ADC_STREAM_COMPLETED
!=
Adc_GetGroupStatus
(
AdcConf_AdcGroup_AdcGroup_000
))
;
Adc_ReadGroup
(
AdcConf_AdcGroup_AdcGroup_000
,
g_u16ADCValue
);
Adc_ReadGroup
(
AdcConf_AdcGroup_AdcGroup_000
,
g_u16ADCValue
);
for
(
uint8_t
i
=
0
;
i
<
16
;
i
++
)
{
g_u16ADCValue
[
i
]
=
ADC_Input_Voltage_Calc
(
g_u16ADCValue
[
i
],
4096
,
5000
);
}
if
(
sdfa
==
0
)
{
sdfa
=
1
;
TCA9539_IIC_Send
(
0xEA
,
0x06
,
0
);
TCA9539_IIC_Send
(
0xEA
,
0x02
,
0xFF
);
}
for
(
uint8_t
i
=
0
;
i
<
16
;
i
++
)
{
g_u16ADCValue
[
i
]
=
ADC_Input_Voltage_Calc
(
g_u16ADCValue
[
i
],
4096
,
5000
);
if
(
i
==
4
)
{
ADC_4
=
g_u16ADCValue
[
i
];
}
}
TCA9539_Control
();
// aaaaaaData= Dio_ReadChannel(Port_Config_PortGroup22_PortPin4);
// abbaaaData= Dio_ReadChannel(Port_Config_PortGroup22_PortPin3);
// Port_SetPinDirection(Port_Config_PortGroup22_PortPin3, PORT_PIN_IN);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment