Professional Documents
Culture Documents
{
char *ptr3;
SYSTEM_init();
UART_1_CPutString(" ADE 7758 Measurement\n\n\r");
ADE7758_init();
while(1)
{
//phaseA();
write_8bit(0x97,0x0D);// LCYMODE reg for Pahse A
delay(20);
write_16bit(0x9C,100); // No of Half Line cycles
delay(20);
read_24bit(0x1A);// Restting the Status Register
while( !((read_24bit(0x19)) & 0x1000)); // Checking the LENGRY bit ie energy accumulted
read_16value = read_16bit(0x01);
awatt = read_16value;
read_16value = read_16bit(0x07);
ava = read_16value;
UART_1_CPutString(" AWEnergy:");
UART_1_PutSHexInt(awatt);
UART_1_PutCRLF();
UART_1_PutSHexInt(ava);
UART_1_PutCRLF();
/*f1 = awatt;
f1 = ((f1/60192.00)*115600.00);
ptr1 = ftoa(f1,&sta1);
if(!sta1)
{
UART_1_PutString(ptr1);
UART_1_PutCRLF();
}*/
read_24bit(0x1A); //Restting the Status Register
UART_1_PutCRLF();
}
}
void SYSTEM_init(void)
{
M8C_EnableGInt;
I2C_CFG &= 0xFC;
UART_1_Start(UART_1_PARITY_EVEN);
SPIM_1_Start(SPIM_1_SPIM_MODE_0 | SPIM_1_SPIM_MSB_FIRST);
Timer16_1_EnableInt ();
Timer16_1_WritePeriod(2000);
Timer16_1_WriteCompareValue(0);
Timer16_1_Start();
}
void ADE7758_init(void)
{
PRT0DR &= (~4);// salve select P0.3
write_8bit(0xC2,0x00);// Making The WDIV for ZERO for accumulation reg at .524 sec
delay(50);
write_8bit(0xC4,0x00);//Making The VADIV for ZERO for accumulation reg at 1.05 sec
delay(50);
write_16bit(0xB0,0x000);// writing the AVAG for 000
delay(50);
write_8bit(0x96,0x00);//COMPMODE Reg for AWATTHR FOR VA*IA..ABS disabled and No load Disabled
delay(50);
void phaseA(void)
{
write_8bit(0x94,0x04);
read_24bitvalue = read_24bit(0x0D); // To read the VRMS Reg
f1 = (((read_24bitvalue * 500.00)/0x193504)/1.4145);// for 50 Hz 193504 // 60Hz- 1902BD
ptr1 = ftoa(f1,&sta1);
if(!sta1)
{
UART_1_CPutString("\n\rVRMS A : ");
UART_1_PutString(ptr1);
UART_1_PutCRLF();
f1 =0.0;
}
write_8bit(0x93,0x04);// 00000100b Enable HPF and default LPF is selected .//OPMODE Reg
read_24bitvalue = read_24bit(0x0A); // to Read the IRMS reg
f1 = (((read_24bitvalue * 500.00)/0x1D51C1)/1.4145);// for 50 Hz 193504 // 60Hz- 1902BD
ptr1 = ftoa(f1,&sta1); // converting to floating string
if(!sta1)
{
UART_1_CPutString("\n\rIRMS A : ");
UART_1_PutString(ptr1);
UART_1_PutCRLF();
}
}
void phaseB(void)
{
write_8bit(0x94,0x04);
read_24bitvalue = read_24bit(0x0E); // To read the VRMS Reg
f1 = (((read_24bitvalue * 500.00)/0x193504)/1.4145);// for 50 Hz 193504 // 60Hz- 1902BD
ptr1 = ftoa(f1,&sta1);
if(!sta1)
{
UART_1_CPutString("\n\rVRMS B : ");
UART_1_PutString(ptr1);
UART_1_PutCRLF();
f1 =0.0;
}
write_8bit(0x93,0x04);// 00000100b Enable HPF and default LPF is selected .//OPMODE Reg
read_24bitvalue = read_24bit(0x0B); // to Read the IRMS reg
f1 = (((read_24bitvalue * 500.00)/0x1D51C1)/1.4145);// for 50 Hz 193504 // 60Hz- 1902BD
ptr1 = ftoa(f1,&sta1); // converting to floating string
if(!sta1)
{
UART_1_CPutString("\n\rIRMS B : ");
UART_1_PutString(ptr1);
UART_1_PutCRLF();
}
}
while(i<j)
t=p[i],p[i]=p[j],p[j]=t,++i,--j;
transmit_write(reg);
delay(10);
transmit_read(a1);
delay(10);
transmit_read(a2);
delay(10);
receive();
delay(10);
}
transmit_write(reg);
delay(10);
transmit_read(a1);
delay(10);
transmit_read(a2);
delay(10);
transmit_read(a3);
delay(10);
receive();
delay(10);
}
transmit_write(reg);
delay(10);
receive();
transmit_read(0x00);
delay(10);
regvalue0 = receive();
delay(10);
transmit_read(0x00);
delay(10);
regvalue1 = receive();
delay(10);
transmit_read(0x00);
delay(10);
regvalue2 = receive();
read_24bitvalue = regvalue0 ;
read_24bitvalue <<= 16;
read_24bitvalue |= (((unsigned int)regvalue1) << 8);
read_24bitvalue |= regvalue2;
regvalue0 = 0;
regvalue1 = 0;
regvalue2 = 0;
return (read_24bitvalue);
}