void init_TWI(int module_adress) { switch(module_adress) { case(C_ADRESS): { PORTC = 0x03; // Pull up, only 1! set_twi_reciever_enable(); //TWSR = (0<<TWPS0) | (0<<TWPS1); //Prescaler 0 0 -> 1 TWBR = 0b00011011; //bit rate 27 => clk = 79.448 kHz TWAR = (1<<TWA6) | (1<<TWGCE); // Address 100 0000, General Call Accepted break; } case(S_ADRESS): { TWBR = 0b00010111; //bit rate 23 => clk = 80.0 kHz set_twi_reciever_enable(); //TWSR = (0<<TWPS0) | (0<<TWPS1); //Prescaler 0 0 -> 1 TWAR = (1<<TWA5); // Address 010 0000, General Call Not Accepted break; } case(ST_ADRESS): { TWBR = 0b00010111; //bit rate 23 => clk = 80.0 kHz set_twi_reciever_enable(); //TWSR = (0<<TWPS0) | (0<<TWPS1); //Prescaler 0 0 -> 1 TWAR = (1<<TWA4) | (1<<TWGCE); // Address 001 0000, General Call Accepted break; } } }
void TWI_init(uint8_t moduleAdress) { myAdress = moduleAdress; switch(moduleAdress) { case(C_ADDRESS): { PORTC = 0x03; // Pull up, only 1! set_twi_reciever_enable(); //TWSR = (0<<TWPS0) | (0<<TWPS1); //Prescaler 0 0 -> 1 TWBR = 0b00111111; //bit rate 27 TWAR = (1<<TWA6) | (1<<TWGCE); // Address 100 0000, General Call Accepted break; } case(S_ADDRESS): { TWBR = 0b00111111; //bit rate 23 set_twi_reciever_enable(); //TWSR = (0<<TWPS0) | (0<<TWPS1); //Prescaler 0 0 -> 1 TWAR = (1<<TWA5); // Address 010 0000, General Call Not Accepted break; } case(ST_ADDRESS): { TWBR = 0b00111111; //bit rate set_twi_reciever_enable(); //TWSR = (0<<TWPS0) | (0<<TWPS1); //Prescaler 0 0 -> 1 TWAR = (1<<TWA4) | (1<<TWGCE); // Address 001 0000, General Call Accepted break; } } }