00001
00007 #ifndef TWI_BASICS_H_
00008 #define TWI_BASICS_H_
00009
00010 #include <stdint.h>
00011 #include <avr/io.h>
00012
00016 typedef uint8_t twi_status;
00017
00022 inline static void twi_set_bitrate(bps)
00023 {
00024 TWBR = (F_CPU/(bps) - 16)/2;
00025 }
00026
00030 inline static void twi_init()
00031 {
00032 DDRC&=((1<<PC4)|(1<<PC5));
00033 PORTC|=((1<<PC4)|(1<<PC5));
00034 TWCR=(1<<TWEN);
00035 }
00036
00037 twi_status twi_start();
00038
00039 twi_status twi_send(uint8_t data);
00040
00041 twi_status twi_receive(uint8_t * where,uint8_t ack);
00042
00043 void twi_stop();
00044
00045
00046 #endif