Hallo Gemeinde
habe ein Problem mit einem Stück Code in C (Atmega 32, 16MHz, PCF 8574)
1 | #ifndef F_CPU // CPU-Takt
|
2 | #define F_CPU 16000000L // definiere ihn auf 16MHz
|
3 | #endif
|
4 |
|
5 | #include <util/delay.h> // Einbinden der .h Datei
|
6 |
|
7 | #include <stdlib.h>
|
8 | #include <avr/io.h>
|
9 | #include <avr/pgmspace.h>
|
10 | #include <i2cmaster.h>
|
11 |
|
12 | // i2c_init ();
|
13 |
|
14 | unsigned char adr1_w = 0x40; // Schreibadresse
|
15 | unsigned char adr1_r = 0x41; // Leseadresse
|
16 | unsigned char d;
|
17 | unsigned char e;
|
18 |
|
19 | int main(void)
|
20 | { // Hauptprogramm
|
21 | i2c_start(adr1_w); // Schreibbefehl für Device 1
|
22 | i2c_write(0xff); // Alle Pins des PCF auf 0
|
23 | while(1)
|
24 | { // Hauptschleife
|
25 | i2c_write(0xff); // Alle Pins des PCF auf 0
|
26 |
|
27 | //i2c_start(adr1_r); // Starte Lesezugriff
|
28 | //d=i2c_readNak(); // Schreib Leseergebnis in d
|
29 |
|
30 | }
|
31 | _delay_ms(100);
|
32 | i2c_stop();
|
33 | }
|
Mein Problem ist ganz einfach. Der PCF 8575 reagiert auf nichts.
Was mach ich falsch? Ein paar Versuche stehen noch drin. Am PCF sind für
A0,A1,A2 low (alle auf GND) eingestellt
achim