Hi, ich wollte meine 1. TWI Verbindung aufbauen und mittels einer LED kontrollieren, ob sie funktioniert (Daten empfangen werden). Die LED bleibt aber aus. Kann mir jemand helfen? Grüße, M.
1 | #include <stdint.h> |
2 | #include <C:\Users\seraphim\Documents\i2cmaster.h> //Anpassen! |
3 | #include <avr/io.h> |
4 | |
5 | #define ISL29010 0x88 //Addresse des Sensors Ground-Adresse
|
6 | |
7 | int main(void) |
8 | {
|
9 | unsigned char ret; //Variable fürs Messbyte, vllt. floating Variable besser |
10 | i2c_init(); //Initialisiere I2C |
11 | i2c_start_wait(ISL29010+I2C_WRITE); //Mit Polling auf den Sensor warten |
12 | i2c_write(0x04); //Adresse des Daten-Registers schreiben |
13 | i2c_rep_start(0x88+I2C_READ); //Datenregister des Sensors ansprechen |
14 | ret = i2c_readAck(); //Datenregister des Sensors auslesen |
15 | i2c_stop(); |
16 | |
17 | if(ret != 0){ |
18 | DDRD = 0xff; //Wenn Daten empfangen werden LED 1 an, LED an Port B und GND |
19 | PORTD = (1<<PB6); //Pull-Up Widerstände |
20 | }
|
21 | /*else{ //Wenn keine Daten empfangen werden LED 2 an, LED an Port D und GND
|
22 | DDRD = 0xff;
|
23 | PORTD = 0xff; //Pull-Up Widerstände
|
24 | }
|
25 | */
|
26 | while(1) { } |
27 | for(;;); |
28 | }
|