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 | //############################################################################ |