Hallo habe ein kleines Problem was mein leider recht dürftiges
Verständnis von Pointern überschreitet.Ich habe folgenden Code
geschrieben der auch soweit funktioniert.
1 | int WritePICData(Uint8 *pData, Uint8 len, Uint8 SlaveAddr )
|
2 | {
|
3 |
|
4 | Uint8 Res =0;
|
5 | Uint8 i = 0;
|
6 |
|
7 | struct I2CMSG SerMes;
|
8 |
|
9 | GI2CMsgStatus = I2C_MSGSTAT_SEND_NOSTOP;
|
10 |
|
11 |
|
12 | SerMes.SlaveAddress = SlaveAddr<<1;
|
13 | SerMes.MasterAddress = I2C_MASTER_ADDR;
|
14 | SerMes.Offset= 0x80;
|
15 | SerMes.NumOfRcvBytes = 2;
|
16 | SerMes.NumOfSendBytes = 0x0B;
|
17 |
|
18 | for (i =0; i <len ;i++)
|
19 | {
|
20 | SerMes.MsgSendBuffer[i] = *(pData++);
|
21 | }
|
22 |
|
23 | SerMes.MsgSendBuffer[len] = Checksum( (Uint8*)&SerMes, 15 );
|
24 |
|
25 | Res = I2CMTransceive( SlaveAddr, SerMes.NumOfSendBytes+DEFAULT_MESS_BYTES, (Uint8*)&SerMes.MasterAddress,
|
26 | SerMes.NumOfRcvBytes, (Uint8*)&SerMes.MsgRcvBuffer );
|
27 |
|
28 | if (Res == I2C_NO_SLAVE)
|
29 | {
|
30 | return PCK_WRITE_DATA_ERROR;
|
31 | }
|
32 |
|
33 | return PCK_WRITE_DATA_OK;
|
34 | }
|
So jetzt soll ich aber meinen Pointer nicht dirket im Funktionsaufruf
übergeben. Sondern der Pointer soll erst später übergeben werden.Dies
soll über einen funktion geschehen. Weis nur nicht wie ich das nun
realisieren soll?
Soetwas habe ich noch nicht gemacht. Hab die Pointer bisher immer direkt
übergeben.