YEAH das ging schnell
ich habe jetzt mal alle bits ausgelesen, und jetzt bekomme ich schonmal die richtigen drehimpulse geliefert =)
Code:char buffa [4]; char buffb [4]; char buffc [4]; char buffd [4]; int dataa; int datab; int datac; int datad; /*### Drehgebertest ### */ void vor(void) { i2c_init(); i2c_start(0xB0); //Slave Adresse des Motortreiber 1 i2c_write(0x00); //Motor 1 i2c_write(0xFF); //vorwärts i2c_stop(); waitms(200); // i2c_init(); i2c_start(0xB0); //Slave Adresse des Motortreiber 1 i2c_write(0x02); //Byte 2 Drehgeber 1 Position (aus MD23 Data Sheet) i2c_stop(); i2c_start(0xB1); //Slave Adresse Motortreiber 1 + 1 Bit für Leserichtung dataa = i2c_read(1); //Lesen datab = i2c_read(1); datac = i2c_read(1); datad = i2c_read(0); i2c_stop(); sprintf(buffa, "%d", dataa); //in char umwandeln sprintf(buffb, "%d", datab); sprintf(buffc, "%d", datac); sprintf(buffd, "%d", datad); sendUSART("\r\n Impulse: "); //senden sendUSART(buffa); sendUSART(buffb); sendUSART(buffc); sendUSART(buffd); waitms(200); i2c_start(0xB0); //Motortreiber 1 i2c_write(0x00); //Motor 1 i2c_write(0x80); //anhalten i2c_stop();







Zitieren

Lesezeichen