Subversion Repositories FlightCtrl

Rev

Rev 787 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 787 Rev 857
Line 10... Line 10...
10
//############################################################################
10
//############################################################################
11
//Initzialisieren der I2C (TWI) Schnittstelle
11
//Initzialisieren der I2C (TWI) Schnittstelle
12
void i2c_init(void)
12
void i2c_init(void)
13
//############################################################################
13
//############################################################################
14
{
14
{
15
  TWSR = 0;
15
        TWSR = 0;
16
  TWBR = ((SYSCLK/SCL_CLOCK)-16)/2;
16
        TWBR = ((SYSCLK/SCL_CLOCK)-16)/2;
17
}
17
}
Line 18... Line 18...
18
 
18
 
19
//############################################################################
19
//############################################################################
20
//Start I2C
20
//Start I2C
Line 33... Line 33...
33
}
33
}
Line 34... Line 34...
34
 
34
 
35
void i2c_reset(void)
35
void i2c_reset(void)
36
//############################################################################
36
//############################################################################
37
{
37
{
38
                 i2c_stop();                
38
        i2c_stop();                
39
                 twi_state = 0;
39
        twi_state = 0;
40
                 motor = TWDR;
40
        motor = TWDR;
41
                 motor = 0;
41
        motor = 0;
42
                 TWCR = 0x80;
42
        TWCR = 0x80;
43
                 TWAMR = 0;
43
        TWAMR = 0;
44
                 TWAR = 0;
44
        TWAR = 0;
45
                 TWDR = 0;
45
        TWDR = 0;
46
                 TWSR = 0;
46
        TWSR = 0;
47
                 TWBR = 0;
47
        TWBR = 0;
48
                 i2c_init();
48
        i2c_init();
49
                 i2c_start();
49
        i2c_start();
50
                 i2c_write_byte(0);
50
        i2c_write_byte(0);
Line 51... Line 51...
51
}
51
}
52
 
52
 
53
//############################################################################
53
//############################################################################
Line 62... Line 62...
62
//############################################################################
62
//############################################################################
63
// I2C receive byte and send ACK
63
// I2C receive byte and send ACK
64
void i2c_receive_byte(void)
64
void i2c_receive_byte(void)
65
//############################################################################
65
//############################################################################
66
{
66
{
67
   TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE) | (1<<TWEA);
67
        TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE) | (1<<TWEA);
68
}
68
}
Line 69... Line 69...
69
 
69
 
70
//############################################################################
70
//############################################################################
71
// I2C receive last byte and send NOT ACK
71
// I2C receive last byte and send NOT ACK
72
void i2c_receive_last_byte(void)
72
void i2c_receive_last_byte(void)
73
//############################################################################
73
//############################################################################
74
{
74
{
75
   TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE);
75
        TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE);
Line 76... Line 76...
76
}
76
}
77
 
77
 
78
//############################################################################
78
//############################################################################