1 #define F_CPU 8000000UL
\r
3 #include <avr/interrupt.h>
\r
4 #include <util/delay.h>
\r
6 #include <avr/sleep.h>
\r
7 #include "USI_TWI_Master.h"
\r
8 #include "MAX1164x.h"
\r
10 void MAX1164x_init(){
\r
14 void MAX1164x_config(uint8_t setup,uint8_t config){
\r
15 I2c_StartCondition();
\r
16 I2c_WriteByte (0b01101100);
\r
17 I2c_WriteByte (setup|0x80);
\r
18 I2c_WriteByte (config);
\r
19 I2c_StopCondition();
\r
22 int16_t MAX1164x_read(void) {
\r
24 I2c_StartCondition();
\r
25 I2c_WriteByte (0b01101101);
\r
26 //DDR_USI&=~(1<<PIN_USI_SCL);
\r
27 //while ((PIN_USI&(1<<PIN_USI_SCL))==0);
\r
28 //DDR_USI|=(1<<PIN_USI_SCL);
\r
30 res=((int16_t)(I2c_ReadByte(ACK)&0x0F))<<8;
\r
31 res|=I2c_ReadByte(NO_ACK);
\r
34 I2c_StopCondition();
\r
40 int16_t MAX1164x_read8(void) {
\r
42 I2c_StartCondition();
\r
43 I2c_WriteByte (0b01101101);
\r
44 //DDR_USI&=~(1<<PIN_USI_SCL);
\r
45 //while ((PIN_USI&(1<<PIN_USI_SCL))==0);
\r
46 //DDR_USI|=(1<<PIN_USI_SCL);
\r
48 res=((int16_t)(I2c_ReadByte(ACK)&0x0F))<<8;
\r
49 res|=I2c_ReadByte(NO_ACK);
\r
52 I2c_StopCondition();
\r