代码结构:I2C 线上的多个设备,具有多个源文件
Code Structure: Multiple Devices on I2C line, with multiple source files
我正在为 TI MSP432 编程。我们在一条 I2C 线上有 4 个不同的设备。
为了保持我们的代码库清晰易读,我们将与不同设备相关的函数保留在不同的 C 文件中。这些文件最初是用 I2C 线上的一个设备开发的,因此 I2C 中断位于单独的文件中。
整合这些文件的正确方法是什么?我们是否只是将 I2C 中断放在主文件中,并让它在每个文件中调用一个函数?或者以某种方式动态更改调用的中断或其他内容?
您应该创建一个通用 I2C 设备驱动程序并根据该驱动程序实现各个设备。具体如何执行取决于许多问题,例如您使用的是 RTOS 还是多线程环境。
例如,您可能有一个 EEPROM 设备,它将使用 I2C 驱动程序,该驱动程序将根据您的应用程序的需要管理总线上的任何互斥或事务查询,而 EEPROM 设备接口可能处理互斥访问到 EEPROM 本身;将总线的需求与设备的需求以及最终的应用程序的需求分开。
我正在为 TI MSP432 编程。我们在一条 I2C 线上有 4 个不同的设备。
为了保持我们的代码库清晰易读,我们将与不同设备相关的函数保留在不同的 C 文件中。这些文件最初是用 I2C 线上的一个设备开发的,因此 I2C 中断位于单独的文件中。
整合这些文件的正确方法是什么?我们是否只是将 I2C 中断放在主文件中,并让它在每个文件中调用一个函数?或者以某种方式动态更改调用的中断或其他内容?
您应该创建一个通用 I2C 设备驱动程序并根据该驱动程序实现各个设备。具体如何执行取决于许多问题,例如您使用的是 RTOS 还是多线程环境。
例如,您可能有一个 EEPROM 设备,它将使用 I2C 驱动程序,该驱动程序将根据您的应用程序的需要管理总线上的任何互斥或事务查询,而 EEPROM 设备接口可能处理互斥访问到 EEPROM 本身;将总线的需求与设备的需求以及最终的应用程序的需求分开。