?? measure.c
字號:
#include "main.h"
void energy_add(void)
{
unsigned char temp_pulse,cs;
temp_pulse=bcd_to_hex(meter_para.pulse_constant[1]);
if(real_energy.pulse>=temp_pulse)
{
real_energy.pulse-=temp_pulse;
bcdadd(real_energy.electric.energy,4);
kwh_flag++;
if(kwh_flag>=100)//1kwh back energy
{
down_save=0;
kwh_flag-=100;
cs=Calibration_cs(real_energy.electric.energy,sizeof(struct real_energy));
real_energy.cs=cs;
DI();
Write_EEPROM(OFFSET_OF(EEPROM_DATA,eprom_real_energy),sizeof(struct real_energy), &real_energy.electric.energy[0]);
Write_EEPROM(OFFSET_OF(EEPROM_DATA,eprom_back_real_energy),sizeof(struct real_energy), &real_energy.electric.energy[0]);
EI();
}
}
}
unsigned char bcd_to_hex(unsigned char value)
{
unsigned char result;
result=((value&0xf0)>>4)*10+(value&0x0f);
return result;
}
unsigned char hex_to_bcd(unsigned char value)
{
unsigned char result;
result=((value/10))*16+(value%10);
return result;
}
void bcdadd(unsigned char *value,unsigned char length)
{
unsigned char temp,i;
for(i=0;i<length;i++)
{
temp=++*value;
if((temp&0x0f)>=0x0A)
{
*value+=0x6;
temp=*value;
if((temp&0xf0)>=0xA0)
{
*value+=0x60;
value++;
}
else
break;
}
else
break;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -