Hallo,
ich habe Probleme beim Übertragen von Bytes an das eDip240-7 Display.
Ich verwende die I2C Schnittstelle des PIC18f66k80.
Ich habe eine Funktion I2C_senden(unsigned char* data) geschrieben,
darin wird die Anzahl der Datenbytes und eine Prüfsumme berechnet, sowie
die Daten in den Ausgabepuffer des PICs geschrieben. Übergebe ich keinen
string also I2C_senden(); funktioniert die Funktion und überträgt
ordentlich die Adresse des Displays sowie die Datenlänge und die
Prüfsumme(siehe Foto_2). Übergebe ich jedoch einen String, werden mir
unerklärliche Sachen auf dem I2C Bus übertragen (siehe Foto_1).
hier mein verwendeter C-Code:
1 | void I2C_senden (char* data)
|
2 | {
|
3 |
|
4 | /******Datenbytes übertragen*****************************/
|
5 | /********************************************************/
|
6 |
|
7 | for(unsigned char i=0;data[i]!=0;i++)
|
8 | {
|
9 | SSPBUF=data[i]; //
|
10 | while (R_W==1){} //Übertragung läuft, warten
|
11 | }
|
12 |
|
13 | /* for(char *hData=data; *hData!=0; hData++)
|
14 | {
|
15 | SSPBUF=*hData;
|
16 | while (R_W==1){} //Übertragung läuft, warten
|
17 | }
|
18 | */
|
19 | }
|
also mit I2C_senden(); funktioniert es
mit z.B. I2C_semdem("a"); funktioniert es nicht