2012-05-03 44 views
0

我有一个主卡和4个从卡,用于我的嵌入式系统。主设备每秒发送一次命令,从设备回复其卡上包含的参数。当命令拥有自己的地址时从机响应,否则丢弃数据包。为Tx缓冲区写入功能并为4个不同面板读取Tx缓冲区的最佳方法?

现在我在看的优化是:

我有每个从面板4个不同的瓦尔更新Tx缓冲区,但具有相同的数据类型。你可以说数组4.我可以做4种不同的函数来填充缓冲区,或者可以使(我想)使用指针数组。

同样的情况适用于Rx缓冲区。我必须用来自4个不同从卡的数据更新4的数组。

在你的看法中应该做什么最优化的代码,在C?

回答

0

至于我的问题的理解去查找表是你所需要的

比方说,你的奴隶被寻址0×01,0×02,×03,0×04

uint8_t *lut[] = {NULL, ptr_to_first_slave_data, ptr_to_second_slave_data ...}; 

然后,在收到:

memcpy(lut[received_address], received_data_ptr, size_of_transfer); 

对于传输,传输参数应该是足够的。

+0

你可以给一个小代码的理解 – user1093152

+0

实际上我有像电压,电流,总时间,功率,总功率,ShuntVoltage,CutOffLow,CutOffHigh等等所有有4对,所以如何可以做了什么? – user1093152

+0

使示例中的所有指针指向参数 – yaman