#include "main.h"
int32_t x1 = 0, x2 = 0;
int32_t VOLTAGE = 0, AMPERAGE = 0;

int32_t ADS1115 (int8_t adress)
{
	if (adress == 1) 
	{
		I2C_Start();
		I2C_SendByte(0b10010000);// передаем адрес устройства и бит записи
		I2C_SendByte(0b00000001);// address pointer register определяем передачу конфигурационных регистров.
		I2C_SendByte(0b11010101);//старший конфиг байт
		I2C_SendByte(0b10000011); //младший конфигурационный байт
		I2C_Stop();

		I2C_Start();
		I2C_SendByte(0b10010000);
		I2C_SendByte(0b00000000);
		I2C_Stop();

		I2C_Start();
		I2C_SendByte(0b10010001);
		x1 = I2C_ReadByte();//считывание старщего байта с АЦП
		x2 = I2C_ReadLastByte();
		I2C_Stop();
	}
	if (adress == 0)
	{
		I2C_Start();
		I2C_SendByte(0b10010000);// передаем адрес устройства и бит записи
		I2C_SendByte(0b00000001);// address pointer register определяем передачу конфигурационных регистров.
		I2C_SendByte(0b11000101);//старший конфиг байт
		I2C_SendByte(0b10000011); //младший конфигурационный байт
		I2C_Stop();

		I2C_Start();
		I2C_SendByte(0b10010000);
		I2C_SendByte(0b00000000);
		I2C_Stop();

		I2C_Start();
		I2C_SendByte(0b10010001);
		x1 = I2C_ReadByte();//считывание старщего байта с АЦП
		x2 = I2C_ReadLastByte();
		I2C_Stop();
	}
	return (((x2 | (x1<<8)) * 2048) / 32767);
}


ISR (TIMER1_OVF_vect)
{

	AMPERAGE = ADS1115(0) * 10;
	
	VOLTAGE = ADS1115(1) * 2;// совмещение 2х 8 битных числа в одно 16ти битное

	led_print(VOLTAGE, AMPERAGE);

}
int main(void)
{
	seg_ini();
	timer_seg_ini();
	sei();
	I2C_ini();
	TCCR1A = 0b00000000;
	TCCR1B = 0b00000010;
	TIMSK |= (1<<TOIE1);
    while(1)
    {
    }
}