So habe heut Abend noch einiges geändert Funzt aber leider immer noch nicht...![]()
![]()
![]()
Ich hab grad keinen Plan mehr... werd jetzt dann aber auch erstmal ne Nacht drüber schlafen und morgen dann wieder weiter machen...
Grüße!!Code:#include <avr/io.h> #include <i2cmaster.h> #include <avr/delay.h> #define SLAVE_ADRESSE 0xE0 ; unsigned int read_cm(unsigned char address); int main(void) { int distance; i2c_init(); DDRD = 0xff; PORTD = 0xff; read_cm(SLAVE_ADRESSE); distance = read_cm(SLAVE_ADRESSE); return 0; } unsigned int read_cm(unsigned char address) { unsigned char lowbyte,highbyte; unsigned int distance; i2c_start_wait(address+I2C_WRITE); while (i2c_write(0)); while (i2c_write(81)); i2c_stop(); i2c_start_wait(address+I2C_WRITE); while (i2c_write(2)); i2c_stop(); _delay_ms(65); i2c_start_wait(address+I2C_READ); highbyte = i2c_readAck(); lowbyte = i2c_readNak(); distance = (highbyte*256)+lowbyte; i2c_stop(); if(distance > 0) { PORTD = 0x00; } return distance; }
Bean







Zitieren

Lesezeichen