Hallo, Ich möchte mit einem PIC18F2550 über I²C den LM75 ansprechen. Ich benutze den Compiler von MPLAB C18. Wenn ich beim Oszi schaue leuft über I²C nichts. Ich hab mir den Code aus verschidenen beiträgen die ich im Internet gefunden habe zusammengepusselt. Die zweite ausgabe (printLCD(": ";)) erscheint nicht auf dem Display. ratlos PS: Ja ich weis das ich das noch berechnen muss, aber befor ich keinen Wert habe kann ich au nichts berechnen! PPS: Wäre net wenn einr mir kurz zeigt wie man des noch berechnet :D Danke im Vorraus!
1 | char GetTempLM75 (void) |
2 | {
|
3 | char LM75_Temperatur1 = 0; |
4 | char LM75_Temperatur2 = 0; |
5 | char addr = 0b1001001; |
6 | |
7 | OpenI2C(MASTER, SLEW_ON); // Master, for 400kHz mode |
8 | SSPADD = 18; // 400kHz |
9 | IdleI2C(); |
10 | StartI2C(); |
11 | IdleI2C(); |
12 | putcI2C(addr); |
13 | IdleI2C(); |
14 | if (SSPCON2bits.ACKSTAT) |
15 | {
|
16 | StopI2C(); |
17 | return 0; |
18 | }
|
19 | LM75_Temperatur1 = getcI2C(); |
20 | LM75_Temperatur2 = getcI2C(); |
21 | IdleI2C(); |
22 | if (SSPCON2bits.ACKSTAT) |
23 | {
|
24 | StopI2C(); |
25 | return 0; |
26 | }
|
27 | StopI2C(); |
28 | CloseI2C(); |
29 | return LM75_Temperatur2; |
30 | }
|
31 | |
32 | |
33 | void main (void) |
34 | {
|
35 | char TempLM75; |
36 | |
37 | TRISA = 0x00; // PORT A ist ein Ausgang |
38 | TRISB = 0x00; // PORT B ist ein Ausgang |
39 | TRISBbits.TRISB0 = 1; // Pin 0 an PORT B ist ein Eingang |
40 | TRISBbits.TRISB1 = 1; // Pin 1 an PORT B ist ein Eingang |
41 | TRISC = 0xFF; // PORT C ist ein Eingang |
42 | TRISCbits.TRISC7 = 0; // PIN 7 an PORT C ist ein Ausgang |
43 | |
44 | |
45 | LATA = 0x00; |
46 | LATB = 0x00; |
47 | LATC = 0x00; |
48 | |
49 | config_LCD(); // LCD Konfigurieren |
50 | Delay10KTCYx(200); // Warten, dass ich am Oszi eindeutig sehe wenn was passiert |
51 | printLCD("Temperatur"); // Ausgabe auf dem LCD |
52 | TempLM75 = GetTempLM75(); // Temperatur herrausfinden |
53 | printLCD(": "); // Zweite Ausgabe |
54 | sendLCD(TempLM75); // Varialbe am Display ausgeben |
55 | while (1); |
56 | }
|