⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 senddata.c

📁 MSP430电能测量程序,用的是电力线载波通讯.即PLC
💻 C
📖 第 1 页 / 共 2 页
字号:
//            value = savedRET[20];//POWERFCT;
            value = (unsigned int)((((unsigned long)value*1000)/POW_2_14));
            SendString("cosPhi(*1000): ");
            if ((signed char)CAPIND > 0) SendChar('-');
            //host_decu16(value);
            l_to_a(value, strbuf);
//            sprintf(strbuf, "%d",value);
            SendString(strbuf);
            SendChar('\r'); 

            value = (unsigned int)((unsigned char)CAPIND);
            SendString("CapInd: ");
            SendResult((unsigned char*) &value, 2);
            SendString("   "); 

            value = POWERFCT;
//            value = savedRET[20];//POWERFCT;
            SendString("PF: ");
            SendResult((unsigned char*) &value, 2);
            SendChar('\r'); 

//            value = (unsigned int)((float)MAINSPERIOD/(float)((float)(1000000)/((float)(1048576))));
            value = (unsigned int)((float)MAINSPERIOD*((float)(1000000)/((float)(1048576))));
//            value = (unsigned int)((((float)savedRET[22]*(float)(1000000))/(float)(1048576)));
            SendString("Main Period(us): ");
            //host_decu16(value);
            l_to_a(value, strbuf);
//            sprintf(strbuf, "%d",value);
            SendString(strbuf);
            SendChar('\r'); 

            SendString("Frequency(mHz): ");
            lvalue = (unsigned long)((float)(1000000*1000/((float)value)));
            //host_decu32(lvalue);
            l_to_a(lvalue, strbuf);
//            sprintf(strbuf, ldfs,lvalue);
            SendString(strbuf);
            SendChar('\r'); 

            lvalue = (unsigned long)((float) energy.l * (s_parameters.EnergyRatio/1000));
            SendString("Active Energy1 (mW): ");
            //host_decu32(lvalue);
            l_to_a(lvalue, strbuf);
//            sprintf(strbuf, ldfs,lvalue);
            SendString(strbuf);
            SendChar('\r'); 

            lvalue = (unsigned long)(((unsigned long)REACTENERGY_HI << 16) + REACTENERGY_LO);
            lvalue = (unsigned long)((float) lvalue * (s_parameters.EnergyRatio/1000));
            SendString("Reactive Energy1 (mVAR): ");
            //host_decu32(lvalue);
            l_to_a(lvalue, strbuf);
//            sprintf(strbuf, ldfs,lvalue);
            SendString(strbuf);
            SendChar('\r'); 

            lvalue = (unsigned long)(((unsigned long)APPENERGY_HI << 16) + APPENERGY_LO);
            lvalue = (unsigned long)((float) lvalue * (s_parameters.EnergyRatio/1000));
            SendString("Apparent Energy1 (mVA): ");
            //host_decu32(lvalue);
            l_to_a(lvalue, strbuf);
//            sprintf(strbuf, ldfs,lvalue);
            SendString(strbuf);
            SendChar('\r'); 

            lvalue = (unsigned long)((float) total_energy * (float)(s_parameters.EnergyRatio)/(float)((float)1000000*(float)3600));
            SendString("Active TotalEnergy1 (Wh): ");
            //host_decu32(lvalue);
            l_to_a(lvalue, strbuf);
//            sprintf(strbuf, ldfs,lvalue);
            SendString(strbuf);
            SendChar('\r'); 

            lvalue = (unsigned long) (((unsigned long)temperature * (s_parameters.ulTempGain))/100 - (s_parameters.ulTempOffset));
            SendString("Temperature(*100/degree): ");
            //host_decu32(lvalue);
            l_to_a(lvalue, strbuf);
//            sprintf(strbuf, ldfs,lvalue);
            SendString(strbuf);
            SendChar('\r'); 

            lvalue = ((LINECYCLCNT_LO) + ((unsigned long)LINECYCLCNT_HI << 16));
//            lvalue = ((savedRET[28]) + ((unsigned long)savedRET[29] << 16));
            SendString("Cycles: ");
            SendResult((unsigned char*) &lvalue, 4);
            SendChar('\r'); 

            lvalue = ((NMBMEAS_LO) + ((unsigned long)NMBMEAS_HI << 16));
            SendString("Num of Meas.: ");
            SendResult((unsigned char*) &lvalue, 4);
            SendChar('\r'); 
    
            break;
	case tx_version:
			SendFloat(software_version,3);
	        SendString("\r");     
            break; 
	
    default:          
            break;
  }    
}



void SendValue(unsigned int parm)
{
  int svalue;
  unsigned int value;
  unsigned long lvalue;
  float fvalue;
  unsigned long activeEnergy;

	activeEnergy = (unsigned long)((float) total_energy * (float)(s_parameters.EnergyRatio)/((float)1000000*(float)3600));  
	
	switch (parm)
    {
      case send_clock:
			//SendString("Time: ");
			SendChar(Digit1(HOUR));	// High digit  
			SendChar(Digit0(HOUR));	// Low digit  
            SendChar(':');
			SendChar(Digit1(MIN));	// High digit  
			SendChar(Digit0(MIN));	// Low digit  
            SendChar(':');
			SendChar(Digit1(SEC));	// High digit  
			SendChar(Digit0(SEC));	// Low digit  
			break;
	  
      case send_date:

			#if	date_format == MMDDYY		// US Format
				SendChar(Digit1(MONTH));	// High digit  
				SendChar(Digit0(MONTH));	// Low digit  
	            SendChar('/');
				SendChar(Digit1(DAY));	// High digit  
				SendChar(Digit0(DAY));	// Low digit  
	            SendChar('/');
				SendChar(Digit1(YEAR));	// High digit  
				SendChar(Digit0(YEAR));	// Low digit  
			#else							// European Format 
				SendChar(Digit1(DAY));	// High digit  
				SendChar(Digit0(DAY));	// Low digit  
	            SendChar('.');
				SendChar(Digit1(MONTH));	// High digit  
				SendChar(Digit0(MONTH));	// Low digit  
	            SendChar('.');
				SendChar(Digit1(YEAR));	// High digit  
				SendChar(Digit0(YEAR));	// Low digit  
			#endif
			break;
      case send_volt:
			#ifdef __CROSSWORKS__
			  lvalue = ((unsigned long) (V1RMS) * (s_parameters.VRatio*1000))/1000;
			#else
			  lvalue = ((unsigned long) ((V1RMS) * (s_parameters.VRatio*1000))/1000);
			#endif
			SendFloat(lvalue,3);
            break;
      case send_current:
            lvalue = ((unsigned long) (IRMS_HI * s_parameters.IRatio*1000))/1000;
			SendFloat(lvalue,3);
            break;
      case send_vpeak:
		    #ifdef __CROSSWORKS__
			  lvalue = ((unsigned long) (VPEAK) * (s_parameters.VRatio*1000))/1000;
			#else
			  lvalue = ((unsigned long) ((VPEAK) * (s_parameters.VRatio*1000))/1000);
			#endif
			SendFloat(lvalue,3);
            break;
      case send_ipeak:
            lvalue = ((unsigned long) (IPEAK * s_parameters.IRatio*1000))/1000;
			SendFloat(lvalue,3);
            break;
      case send_freq:
//              lvalue = (unsigned long)((float)((long)1000*(long)256*(long)4096))/((float)savedRET[22]);
            lvalue = (unsigned long)((float)((long)1000*(long)256*(long)4096))/((float)MAINSPERIOD);
			SendFloat(lvalue,3);
            break;
      case send_cosphi:
            value = (unsigned int)((((unsigned long)POWERFCT*1000)/POW_2_14));
            lvalue = ((((unsigned long)POWERFCT*1000)/POW_2_14));
			if ((signed char)CAPIND < 0)
			{ SendChar('-'); }
			else
			{ SendChar('+'); }
			SendFloat(lvalue,3);
            break;
/*      case send_ch1:
                LCDdecu16(wfs1, 5, 7, 0);
              break;
      case send_ch2:
                LCDdecu16(wfs2, 5, 7, 0);
              break;
      case send_ch3:
                LCDdecu16(wfs3, 5, 7, 0);
              break;  */
      case send_temp:
            lvalue = (unsigned long) (((unsigned long)temperature * (s_parameters.ulTempGain))/100 - (s_parameters.ulTempOffset));
 			SendFloat(lvalue,2);
            break;
      case send_power:
			fvalue = ((float) energy.l * (float)(s_parameters.EnergyRatio)/(1000000));
            if (fvalue <= 1000)
            {
				lvalue = (unsigned long)(fvalue*1000);// Active Power (kW);
				SendFloat(lvalue,6);	
			}
            else
            {
				lvalue = (unsigned long)fvalue;
				SendFloat(lvalue,3);
			}
            break;
      case send_energy:
              //lvalue = (unsigned long)((float) total_energy * (float)(s_parameters.EnergieRatio)/((float)1000000*(float)3600));
            lvalue = activeEnergy;		// Active Energy1 (kWh):
			SendFloat(lvalue,3);		
            break;
	  case send_msgin:
      case send_last:
      default:  
           break;
    } 
  
	SendChar('\r');		// End the string with carriage return 
  
}

#endif // withUARTComm

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -