Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 976 → Rev 977

/branches/V0.70d HexaLotte/twimaster.c
6,7 → 6,7
volatile unsigned char twi_state = 0;
unsigned char motor = 0;
unsigned char motorread = 0;
unsigned char motor_rx[8];
unsigned char motor_rx[MOTOR_COUNT*2];
 
//############################################################################
//Initzialisieren der I2C (TWI) Schnittstelle
76,9 → 76,32
i2c_write_byte(0x52+(motor*2));
break;
case 1:
#ifdef HEXAKOPTER
switch(motor++)
{
case 0:
i2c_write_byte(Motor_VorneLinks);
break;
case 1:
i2c_write_byte(Motor_HintenRechts);
break;
case 2:
i2c_write_byte(Motor_VorneRechts);
break;
case 3:
i2c_write_byte(Motor_HintenLinks);
break;
case 4:
i2c_write_byte(Motor_Rechts);
break;
case 5:
i2c_write_byte(Motor_Links);
break;
}
#else
switch(motor++)
{
case 0:
i2c_write_byte(Motor_Vorne);
break;
case 1:
91,10 → 114,11
i2c_write_byte(Motor_Links);
break;
}
#endif
break;
case 2:
i2c_stop();
if (motor<4) twi_state = 0;
if (motor<MOTOR_COUNT) twi_state = 0;
else motor = 0;
i2c_start();
break;
104,46 → 128,18
i2c_write_byte(0x53+(motorread*2));
break;
case 4:
switch(motorread)
{
case 0:
i2c_write_byte(Motor_Vorne);
break;
case 1:
i2c_write_byte(Motor_Hinten);
break;
case 2:
i2c_write_byte(Motor_Rechts);
break;
case 3:
i2c_write_byte(Motor_Links);
break;
}
TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE) | (1<<TWEA);
break;
case 5: //1 Byte vom Motor lesen
motor_rx[motorread] = TWDR;
 
case 6:
switch(motorread)
{
case 0:
i2c_write_byte(Motor_Vorne);
break;
case 1:
i2c_write_byte(Motor_Hinten);
break;
case 2:
i2c_write_byte(Motor_Rechts);
break;
case 3:
i2c_write_byte(Motor_Links);
break;
}
TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE);
break;
case 7: //2 Byte vom Motor lesen
motor_rx[motorread+4] = TWDR;
motor_rx[motorread+MOTOR_COUNT] = TWDR;
motorread++;
if (motorread>3) motorread=0;
if (motorread>=MOTOR_COUNT) motorread=0;
i2c_stop();
I2CTimeout = 10;
twi_state = 0;