#define F_CPU (4800000uL / 1)

#include <stdint.h>
#include <util/delay.h>
#include <avr/io.h>
#include <avr/pgmspace.h>

int main();
void setup();

void delay_ms(uint8_t ms);


//////////////////////////////////////////////////////////////////////////////
// I2C
//////////////////////////////////////////////////////////////////////////////
#define i2c_delay() asm volatile( "nop \n nop \n" )

// set SCL/SDA
inline void i2c_scl_0(){ DDRB |= (1<<PB0); }
inline void i2c_scl_1(){ DDRB &= ~(1<<PB0); }
inline void i2c_sda_0(){ DDRB |= (1<<PB1); }
inline void i2c_sda_1(){ DDRB &= ~(1<<PB1); }

void i2c_start();
void i2c_stop();
void i2c_wr_u8(uint8_t b);

#define OLED_ADDR  0x78
#define OLED_SHIFT 0
void oled_init();
void oled_clr();
void oled_goto(uint8_t x, uint8_t y);
void oled_c(uint8_t x,uint8_t y, uint8_t sx,uint8_t sy, uint8_t c);
void oled_c1(uint8_t c);


//////////////////////////////////////////////////////////////////////////////
// ADC
//////////////////////////////////////////////////////////////////////////////
#define ADC_DELAY 100
#define ADC_REF   5000
#define ADC_CHNS  4
#define ADC_DIV   11
struct adc_struct{
	uint8_t chn, p[ADC_CHNS];
	uint16_t raw[ADC_CHNS];//, u[ADC_CHNS];
}adc;

