/Modules/PowerSupply/LION1CELL01B/SW/PIC16F887/setting/Q_MAX/main.c
0,0 → 1,156
#include "C:\Users\Honza\Documents\pic\I2C_bat_pam\Q_MAX\main.h"
 
 
 
#define EEPROM_SDA PIN_C4
#define EEPROM_SCL PIN_C3
#use i2c(master, sda=EEPROM_SDA, scl=EEPROM_SCL)
#use rs232(baud=9600,parity=N,xmit=PIN_C7,rcv=PIN_C6,bits=8) //rcv TXD xmit RXD
 
 
void main()
{
 
setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_CLOCK_DIV_2);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_ccp1(CCP_OFF);
setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard
 
printf("Simple Thermomether \r\n",);
unsigned int8 STAV1,STAV2;
 
unsigned int16 SOUCET, SOUCET1;
unsigned int8 LSB=0,ZK,k=0,VH,VL;
//unsigned int8
while(TRUE)
{
 
 
i2c_start(); //blockdatacontrol
I2C_Write(0xAA);
I2C_write(0x61);
i2c_start();
I2C_Write(0xAA);
i2c_write(0x00);
i2c_stop();
delay_ms (1);
 
 
i2c_start();//dataflashclass
I2C_Write(0xAA);
I2C_write(0x3e);
i2c_start();
I2C_Write(0xAA);
i2c_write(0x52);
i2c_stop();
delay_ms (1);
i2c_start();//dataflashblock
I2C_Write(0xAA);
I2C_write(0x3f);
i2c_start();
I2C_Write(0xAA);
I2C_write(0x00);
i2c_stop();
delay_ms (1);
i2c_start();//blockdata
I2C_Write(0xAA);
I2C_write(0x40);
i2c_start();
I2C_Write(0xAB);
VH=I2C_read(0);
i2c_stop();
i2c_start();//blockdata
I2C_Write(0xAA);
I2C_write(0x41);
i2c_start();
I2C_Write(0xAB);
VL=I2C_read(0);
i2c_stop();
delay_ms (10);
printf("VL %lX \r\n", VL);
printf("LH %lX \r\n", VH);
if(VL==0x48)
{
LSB=LSB-1;
printf("Vysledne LSB %lX \r\n", LSB);
while(TRUE)
{
}
}
 
else
{
i2c_start();//blockdata
I2C_Write(0xAA);
I2C_write(0x40);
i2c_start();
I2C_Write(0xAA);
I2C_write(0x0D);
i2c_stop();
i2c_start();//blockdata
I2C_Write(0xAA);
I2C_write(0x41);
i2c_start();
I2C_Write(0xAA);
I2C_write(0x48);
i2c_stop();
 
 
 
 
}
 
i2c_start();//blockdata
I2C_Write(0xAA);
I2C_write(0x60);
i2c_start();
I2C_Write(0xAA);
I2C_write(LSB);
i2c_stop();
 
LSB=LSB+1;
 
delay_ms (100);
 
 
 
 
 
 
}
 
}