Hallo,
ich habe eine Funktion:
1 | void SendUART(char* zeig);
|
mit der ein String z.b. mit dem Aufruf:
gesendet werden kann.
Auf der anderen Seite habe ich eine I2C-Implementierung mit folgendem
Prototypen:
1 | unsigned char TWI_Get_Data_From_Transceiver( unsigned char *, unsigned char );
|
Die so implementiert ist:
1 | unsigned char TWI_Get_Data_From_Transceiver( unsigned char *msg, unsigned char msgSize )
|
2 | {
|
3 | unsigned char i;
|
4 |
|
5 | while ( TWI_Transceiver_Busy() ); // Wait until TWI is ready for next transmission.
|
6 |
|
7 | if( TWI_statusReg.lastTransOK ) // Last transmission competed successfully.
|
8 | {
|
9 | for ( i=0; i<msgSize; i++ ) // Copy data from Transceiver buffer.
|
10 | {
|
11 | msg[ i ] = TWI_buf[ i ];
|
12 | }
|
13 | }
|
14 | return( TWI_statusReg.lastTransOK );
|
15 | }
|
ich möchte das was als
zurückgegeben wird per UART senden.
Der Code ist wie folgt aufgebaut
1 | int main(void)
|
2 | {
|
3 | TWI_Master_Initialise();
|
4 | InituC();
|
5 | InitUART();
|
6 | unsigned char write_addr0[2] ={0xd0,0x00};
|
7 | unsigned char read[2] ={0xd1,0x00};
|
8 | char * ra_pt = &read[0];
|
9 | unsigned char read_in;
|
10 | while(1)
|
11 | {
|
12 | _delay_ms(100);
|
13 | TWI_Start_Transceiver_With_Data(write_addr0 , 2);
|
14 | _delay_ms(100);
|
15 | TWI_Start_Transceiver();
|
16 | _delay_ms(100);
|
17 | read_in=TWI_Get_Data_From_Transceiver( read, 1); //!!!Z1!!!
|
18 | if (read_in > 0)
|
19 | {
|
20 | SendUART(ra_pt);
|
21 | }
|
22 | }
|
23 | }
|
Nun finde ich keine Möglichkeit den in Z1 mit read zurückgegebenen wert
in die SendUART-Funktion zu packen...
Es scheitert immer an einer
1 | invalid conversion from 'unsigned char*' to 'char*'
|
Hat vielleicht jemand eine Idee, wie eine solche Konvertierung gelingen
kann?
Grüße und vielen Dank,
Matthias